// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.250303.1

#pragma once
#ifndef WINRT_Microsoft_UI_Xaml_Automation_H
#define WINRT_Microsoft_UI_Xaml_Automation_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/Microsoft.UI.Xaml.h"
#include "winrt/impl/Microsoft.UI.Xaml.2.h"
#include "winrt/impl/Microsoft.UI.Xaml.Automation.Peers.2.h"
#include "winrt/impl/Windows.Foundation.Collections.2.h"
#include "winrt/impl/Microsoft.UI.Xaml.Automation.2.h"
namespace winrt::impl
{
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAnnotationPatternIdentifiersStatics<D>::AnnotationTypeIdProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AnnotationTypeIdProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_AnnotationTypeIdProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAnnotationPatternIdentifiersStatics<D>::AnnotationTypeNameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AnnotationTypeNameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_AnnotationTypeNameProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAnnotationPatternIdentifiersStatics<D>::AuthorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AuthorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_AuthorProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAnnotationPatternIdentifiersStatics<D>::DateTimeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DateTimeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_DateTimeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAnnotationPatternIdentifiersStatics<D>::TargetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TargetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_TargetProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationAnnotation<D>::Type() const
    {
        winrt::Microsoft::UI::Xaml::Automation::AnnotationType value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Type(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>**)this;
            check_hresult(_winrt_abi_type->get_Type(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationAnnotation<D>::Type(winrt::Microsoft::UI::Xaml::Automation::AnnotationType const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Type(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>**)this;
            check_hresult(_winrt_abi_type->put_Type(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationAnnotation<D>::Element() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Element(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>**)this;
            check_hresult(_winrt_abi_type->get_Element(&value));
        }
        return winrt::Microsoft::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationAnnotation<D>::Element(winrt::Microsoft::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Element(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>**)this;
            check_hresult(_winrt_abi_type->put_Element(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationAnnotationFactory<D>::CreateInstance(winrt::Microsoft::UI::Xaml::Automation::AnnotationType const& type) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(static_cast<int32_t>(type), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(static_cast<int32_t>(type), &value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationAnnotation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationAnnotationFactory<D>::CreateWithElementParameter(winrt::Microsoft::UI::Xaml::Automation::AnnotationType const& type, winrt::Microsoft::UI::Xaml::UIElement const& element) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateWithElementParameter(static_cast<int32_t>(type), *(void**)(&element), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory>**)this;
            check_hresult(_winrt_abi_type->CreateWithElementParameter(static_cast<int32_t>(type), *(void**)(&element), &value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationAnnotation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationAnnotationStatics<D>::TypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics>**)this;
            check_hresult(_winrt_abi_type->get_TypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationAnnotationStatics<D>::ElementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ElementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics>**)this;
            check_hresult(_winrt_abi_type->get_ElementProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::AcceleratorKeyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AcceleratorKeyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_AcceleratorKeyProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::AccessKeyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AccessKeyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_AccessKeyProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::AutomationIdProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutomationIdProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_AutomationIdProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::BoundingRectangleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BoundingRectangleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_BoundingRectangleProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::ClassNameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClassNameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ClassNameProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::ClickablePointProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClickablePointProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ClickablePointProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::ControlTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ControlTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ControlTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::HasKeyboardFocusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasKeyboardFocusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_HasKeyboardFocusProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::HelpTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HelpTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_HelpTextProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsContentElementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsContentElementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsContentElementProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsControlElementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsControlElementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsControlElementProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsEnabledProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsKeyboardFocusableProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsKeyboardFocusableProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsKeyboardFocusableProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsOffscreenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOffscreenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsOffscreenProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsPasswordProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPasswordProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPasswordProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsRequiredForFormProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRequiredForFormProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsRequiredForFormProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::ItemStatusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemStatusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemStatusProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::ItemTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::LabeledByProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LabeledByProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_LabeledByProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::LocalizedControlTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LocalizedControlTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_LocalizedControlTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::NameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_NameProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::LiveSettingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LiveSettingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_LiveSettingProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::ControlledPeersProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ControlledPeersProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ControlledPeersProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::PositionInSetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PositionInSetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_PositionInSetProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::SizeOfSetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SizeOfSetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_SizeOfSetProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::LevelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LevelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_LevelProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::AnnotationsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AnnotationsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_AnnotationsProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::LandmarkTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LandmarkTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_LandmarkTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::LocalizedLandmarkTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LocalizedLandmarkTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_LocalizedLandmarkTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsPeripheralProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPeripheralProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPeripheralProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsDataValidForFormProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDataValidForFormProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsDataValidForFormProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::FullDescriptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FullDescriptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_FullDescriptionProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::DescribedByProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DescribedByProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_DescribedByProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::FlowsToProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FlowsToProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_FlowsToProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::FlowsFromProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FlowsFromProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_FlowsFromProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::CultureProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CultureProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CultureProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::HeadingLevelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeadingLevelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeadingLevelProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationElementIdentifiersStatics<D>::IsDialogProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDialogProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsDialogProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::AcceleratorKeyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AcceleratorKeyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_AcceleratorKeyProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetAcceleratorKey(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAcceleratorKey(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetAcceleratorKey(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetAcceleratorKey(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAcceleratorKey(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetAcceleratorKey(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::AccessKeyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AccessKeyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_AccessKeyProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetAccessKey(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAccessKey(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetAccessKey(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetAccessKey(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAccessKey(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetAccessKey(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::AutomationIdProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutomationIdProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_AutomationIdProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetAutomationId(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAutomationId(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetAutomationId(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetAutomationId(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAutomationId(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetAutomationId(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::HelpTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HelpTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_HelpTextProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetHelpText(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetHelpText(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetHelpText(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetHelpText(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetHelpText(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetHelpText(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::IsRequiredForFormProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRequiredForFormProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsRequiredForFormProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetIsRequiredForForm(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsRequiredForForm(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsRequiredForForm(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetIsRequiredForForm(winrt::Microsoft::UI::Xaml::DependencyObject const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsRequiredForForm(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsRequiredForForm(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::ItemStatusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemStatusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemStatusProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetItemStatus(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetItemStatus(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetItemStatus(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetItemStatus(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetItemStatus(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetItemStatus(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::ItemTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetItemType(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetItemType(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetItemType(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetItemType(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetItemType(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetItemType(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::LabeledByProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LabeledByProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_LabeledByProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetLabeledBy(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLabeledBy(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetLabeledBy(*(void**)(&element), &result));
        }
        return winrt::Microsoft::UI::Xaml::UIElement{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetLabeledBy(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLabeledBy(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetLabeledBy(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::NameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_NameProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetName(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetName(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetName(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetName(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetName(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetName(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::LiveSettingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LiveSettingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_LiveSettingProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetLiveSetting(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLiveSetting result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLiveSetting(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetLiveSetting(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetLiveSetting(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLiveSetting const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLiveSetting(*(void**)(&element), static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetLiveSetting(*(void**)(&element), static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::AccessibilityViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AccessibilityViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_AccessibilityViewProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetAccessibilityView(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Microsoft::UI::Xaml::Automation::Peers::AccessibilityView result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAccessibilityView(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetAccessibilityView(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetAccessibilityView(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AccessibilityView const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAccessibilityView(*(void**)(&element), static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetAccessibilityView(*(void**)(&element), static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::ControlledPeersProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ControlledPeersProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_ControlledPeersProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetControlledPeers(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetControlledPeers(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetControlledPeers(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::UIElement>{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::PositionInSetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PositionInSetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_PositionInSetProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetPositionInSet(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetPositionInSet(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetPositionInSet(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetPositionInSet(winrt::Microsoft::UI::Xaml::DependencyObject const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetPositionInSet(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetPositionInSet(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SizeOfSetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SizeOfSetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_SizeOfSetProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetSizeOfSet(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetSizeOfSet(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetSizeOfSet(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetSizeOfSet(winrt::Microsoft::UI::Xaml::DependencyObject const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetSizeOfSet(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetSizeOfSet(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::LevelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LevelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_LevelProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetLevel(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLevel(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetLevel(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetLevel(winrt::Microsoft::UI::Xaml::DependencyObject const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLevel(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetLevel(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::AnnotationsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AnnotationsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_AnnotationsProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetAnnotations(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAnnotations(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetAnnotations(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::Automation::AutomationAnnotation>{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::LandmarkTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LandmarkTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_LandmarkTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetLandmarkType(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLandmarkType result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLandmarkType(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetLandmarkType(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetLandmarkType(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLandmarkType const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLandmarkType(*(void**)(&element), static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetLandmarkType(*(void**)(&element), static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::LocalizedLandmarkTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LocalizedLandmarkTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_LocalizedLandmarkTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetLocalizedLandmarkType(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLocalizedLandmarkType(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetLocalizedLandmarkType(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetLocalizedLandmarkType(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLocalizedLandmarkType(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetLocalizedLandmarkType(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::IsPeripheralProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPeripheralProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPeripheralProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetIsPeripheral(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsPeripheral(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsPeripheral(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetIsPeripheral(winrt::Microsoft::UI::Xaml::DependencyObject const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsPeripheral(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsPeripheral(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::IsDataValidForFormProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDataValidForFormProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsDataValidForFormProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetIsDataValidForForm(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsDataValidForForm(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsDataValidForForm(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetIsDataValidForForm(winrt::Microsoft::UI::Xaml::DependencyObject const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsDataValidForForm(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsDataValidForForm(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::FullDescriptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FullDescriptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_FullDescriptionProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetFullDescription(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetFullDescription(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetFullDescription(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetFullDescription(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetFullDescription(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetFullDescription(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::LocalizedControlTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LocalizedControlTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_LocalizedControlTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetLocalizedControlType(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLocalizedControlType(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetLocalizedControlType(*(void**)(&element), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetLocalizedControlType(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLocalizedControlType(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetLocalizedControlType(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::DescribedByProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DescribedByProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_DescribedByProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetDescribedBy(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetDescribedBy(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetDescribedBy(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::DependencyObject>{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::FlowsToProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FlowsToProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_FlowsToProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetFlowsTo(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetFlowsTo(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetFlowsTo(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::DependencyObject>{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::FlowsFromProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FlowsFromProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_FlowsFromProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetFlowsFrom(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetFlowsFrom(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetFlowsFrom(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::DependencyObject>{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::CultureProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CultureProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_CultureProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetCulture(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetCulture(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetCulture(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetCulture(winrt::Microsoft::UI::Xaml::DependencyObject const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetCulture(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetCulture(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::HeadingLevelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeadingLevelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeadingLevelProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetHeadingLevel(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationHeadingLevel result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetHeadingLevel(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetHeadingLevel(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetHeadingLevel(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationHeadingLevel const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetHeadingLevel(*(void**)(&element), static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetHeadingLevel(*(void**)(&element), static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::IsDialogProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDialogProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsDialogProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::GetIsDialog(winrt::Microsoft::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsDialog(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsDialog(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics<D>::SetIsDialog(winrt::Microsoft::UI::Xaml::DependencyObject const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsDialog(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsDialog(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics2<D>::AutomationControlTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutomationControlTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>**)this;
            check_hresult(_winrt_abi_type->get_AutomationControlTypeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics2<D>::GetAutomationControlType(winrt::Microsoft::UI::Xaml::UIElement const& element) const
    {
        winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationControlType result{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAutomationControlType(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>**)this;
            check_hresult(_winrt_abi_type->GetAutomationControlType(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IAutomationPropertiesStatics2<D>::SetAutomationControlType(winrt::Microsoft::UI::Xaml::UIElement const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationControlType const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAutomationControlType(*(void**)(&element), static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>**)this;
            check_hresult(_winrt_abi_type->SetAutomationControlType(*(void**)(&element), static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IDockPatternIdentifiersStatics<D>::DockPositionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DockPositionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_DockPositionProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IDragPatternIdentifiersStatics<D>::DropEffectProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DropEffectProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_DropEffectProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IDragPatternIdentifiersStatics<D>::DropEffectsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DropEffectsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_DropEffectsProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IDragPatternIdentifiersStatics<D>::GrabbedItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GrabbedItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_GrabbedItemsProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IDragPatternIdentifiersStatics<D>::IsGrabbedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGrabbedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsGrabbedProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IDropTargetPatternIdentifiersStatics<D>::DropTargetEffectProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DropTargetEffectProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_DropTargetEffectProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IDropTargetPatternIdentifiersStatics<D>::DropTargetEffectsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DropTargetEffectsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_DropTargetEffectsProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IExpandCollapsePatternIdentifiersStatics<D>::ExpandCollapseStateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExpandCollapseStateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ExpandCollapseStateProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IGridItemPatternIdentifiersStatics<D>::ColumnProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColumnProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IGridItemPatternIdentifiersStatics<D>::ColumnSpanProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnSpanProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColumnSpanProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IGridItemPatternIdentifiersStatics<D>::ContainingGridProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContainingGridProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContainingGridProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IGridItemPatternIdentifiersStatics<D>::RowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IGridItemPatternIdentifiersStatics<D>::RowSpanProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowSpanProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowSpanProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IGridPatternIdentifiersStatics<D>::ColumnCountProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnCountProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColumnCountProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IGridPatternIdentifiersStatics<D>::RowCountProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowCountProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowCountProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IMultipleViewPatternIdentifiersStatics<D>::CurrentViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CurrentViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CurrentViewProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IMultipleViewPatternIdentifiersStatics<D>::SupportedViewsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SupportedViewsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_SupportedViewsProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IRangeValuePatternIdentifiersStatics<D>::IsReadOnlyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IRangeValuePatternIdentifiersStatics<D>::LargeChangeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LargeChangeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_LargeChangeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IRangeValuePatternIdentifiersStatics<D>::MaximumProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaximumProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaximumProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IRangeValuePatternIdentifiersStatics<D>::MinimumProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinimumProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinimumProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IRangeValuePatternIdentifiersStatics<D>::SmallChangeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SmallChangeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_SmallChangeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IRangeValuePatternIdentifiersStatics<D>::ValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ValueProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IScrollPatternIdentifiersStatics<D>::HorizontallyScrollableProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontallyScrollableProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontallyScrollableProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IScrollPatternIdentifiersStatics<D>::HorizontalScrollPercentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalScrollPercentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalScrollPercentProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IScrollPatternIdentifiersStatics<D>::HorizontalViewSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalViewSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalViewSizeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IScrollPatternIdentifiersStatics<D>::NoScroll() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NoScroll(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_NoScroll(&value));
        }
        return value;
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IScrollPatternIdentifiersStatics<D>::VerticallyScrollableProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticallyScrollableProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticallyScrollableProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IScrollPatternIdentifiersStatics<D>::VerticalScrollPercentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalScrollPercentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalScrollPercentProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IScrollPatternIdentifiersStatics<D>::VerticalViewSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalViewSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalViewSizeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ISelectionItemPatternIdentifiersStatics<D>::IsSelectedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSelectedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSelectedProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ISelectionItemPatternIdentifiersStatics<D>::SelectionContainerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionContainerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectionContainerProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ISelectionPatternIdentifiersStatics<D>::CanSelectMultipleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanSelectMultipleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanSelectMultipleProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ISelectionPatternIdentifiersStatics<D>::IsSelectionRequiredProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSelectionRequiredProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSelectionRequiredProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ISelectionPatternIdentifiersStatics<D>::SelectionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectionProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ISpreadsheetItemPatternIdentifiersStatics<D>::FormulaProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FormulaProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_FormulaProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IStylesPatternIdentifiersStatics<D>::ExtendedPropertiesProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExtendedPropertiesProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ExtendedPropertiesProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IStylesPatternIdentifiersStatics<D>::FillColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FillColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_FillColorProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IStylesPatternIdentifiersStatics<D>::FillPatternColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FillPatternColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_FillPatternColorProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IStylesPatternIdentifiersStatics<D>::FillPatternStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FillPatternStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_FillPatternStyleProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IStylesPatternIdentifiersStatics<D>::ShapeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShapeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ShapeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IStylesPatternIdentifiersStatics<D>::StyleIdProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StyleIdProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_StyleIdProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IStylesPatternIdentifiersStatics<D>::StyleNameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StyleNameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_StyleNameProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITableItemPatternIdentifiersStatics<D>::ColumnHeaderItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnHeaderItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColumnHeaderItemsProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITableItemPatternIdentifiersStatics<D>::RowHeaderItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowHeaderItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowHeaderItemsProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITablePatternIdentifiersStatics<D>::ColumnHeadersProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnHeadersProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColumnHeadersProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITablePatternIdentifiersStatics<D>::RowHeadersProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowHeadersProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowHeadersProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITablePatternIdentifiersStatics<D>::RowOrColumnMajorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowOrColumnMajorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowOrColumnMajorProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITogglePatternIdentifiersStatics<D>::ToggleStateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ToggleStateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ToggleStateProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITransformPattern2IdentifiersStatics<D>::CanZoomProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanZoomProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanZoomProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITransformPattern2IdentifiersStatics<D>::ZoomLevelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomLevelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ZoomLevelProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITransformPattern2IdentifiersStatics<D>::MaxZoomProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxZoomProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxZoomProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITransformPattern2IdentifiersStatics<D>::MinZoomProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinZoomProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinZoomProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITransformPatternIdentifiersStatics<D>::CanMoveProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanMoveProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanMoveProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITransformPatternIdentifiersStatics<D>::CanResizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanResizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanResizeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_ITransformPatternIdentifiersStatics<D>::CanRotateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanRotateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanRotateProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IValuePatternIdentifiersStatics<D>::IsReadOnlyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IValuePatternIdentifiersStatics<D>::ValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_ValueProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IWindowPatternIdentifiersStatics<D>::CanMaximizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanMaximizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanMaximizeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IWindowPatternIdentifiersStatics<D>::CanMinimizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanMinimizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanMinimizeProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IWindowPatternIdentifiersStatics<D>::IsModalProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsModalProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsModalProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IWindowPatternIdentifiersStatics<D>::IsTopmostProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTopmostProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTopmostProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IWindowPatternIdentifiersStatics<D>::WindowInteractionStateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_WindowInteractionStateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_WindowInteractionStateProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Microsoft_UI_Xaml_Automation_IWindowPatternIdentifiersStatics<D>::WindowVisualStateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_WindowVisualStateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>**)this;
            check_hresult(_winrt_abi_type->get_WindowVisualStateProperty(&value));
        }
        return winrt::Microsoft::UI::Xaml::Automation::AutomationProperty{ value, take_ownership_from_abi };
    }
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics>
    {
        int32_t __stdcall get_AnnotationTypeIdProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().AnnotationTypeIdProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AnnotationTypeNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().AnnotationTypeNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AuthorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().AuthorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateTimeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().DateTimeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().TargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation>
    {
        int32_t __stdcall get_Type(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AnnotationType>(this->shim().Type());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Type(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Type(*reinterpret_cast<winrt::Microsoft::UI::Xaml::Automation::AnnotationType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Element(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::UIElement>(this->shim().Element());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Element(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Element(*reinterpret_cast<winrt::Microsoft::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory>
    {
        int32_t __stdcall CreateInstance(int32_t type, void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationAnnotation>(this->shim().CreateInstance(*reinterpret_cast<winrt::Microsoft::UI::Xaml::Automation::AnnotationType const*>(&type)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CreateWithElementParameter(int32_t type, void* element, void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationAnnotation>(this->shim().CreateWithElementParameter(*reinterpret_cast<winrt::Microsoft::UI::Xaml::Automation::AnnotationType const*>(&type), *reinterpret_cast<winrt::Microsoft::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics>
    {
        int32_t __stdcall get_TypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().TypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ElementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().ElementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics>
    {
        int32_t __stdcall get_AcceleratorKeyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().AcceleratorKeyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AccessKeyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().AccessKeyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutomationIdProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().AutomationIdProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BoundingRectangleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().BoundingRectangleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ClassNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ClassNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ClickablePointProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ClickablePointProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ControlTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ControlTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasKeyboardFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().HasKeyboardFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HelpTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().HelpTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsContentElementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsContentElementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsControlElementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsControlElementProperty());
            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::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsKeyboardFocusableProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsKeyboardFocusableProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOffscreenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsOffscreenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPasswordProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsPasswordProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRequiredForFormProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsRequiredForFormProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemStatusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ItemStatusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ItemTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LabeledByProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().LabeledByProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LocalizedControlTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().LocalizedControlTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().NameProperty());
            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::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LiveSettingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().LiveSettingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ControlledPeersProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ControlledPeersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PositionInSetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().PositionInSetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SizeOfSetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().SizeOfSetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LevelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().LevelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AnnotationsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().AnnotationsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LandmarkTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().LandmarkTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LocalizedLandmarkTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().LocalizedLandmarkTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPeripheralProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsPeripheralProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDataValidForFormProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsDataValidForFormProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FullDescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().FullDescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescribedByProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().DescribedByProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FlowsToProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().FlowsToProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FlowsFromProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().FlowsFromProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CultureProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CultureProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeadingLevelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().HeadingLevelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDialogProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsDialogProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationProperties> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationProperties>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics>
    {
        int32_t __stdcall get_AcceleratorKeyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().AcceleratorKeyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAcceleratorKey(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetAcceleratorKey(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAcceleratorKey(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAcceleratorKey(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AccessKeyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().AccessKeyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAccessKey(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetAccessKey(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAccessKey(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAccessKey(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutomationIdProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().AutomationIdProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAutomationId(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetAutomationId(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAutomationId(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAutomationId(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HelpTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().HelpTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetHelpText(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetHelpText(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetHelpText(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHelpText(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRequiredForFormProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().IsRequiredForFormProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsRequiredForForm(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsRequiredForForm(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsRequiredForForm(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsRequiredForForm(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemStatusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().ItemStatusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetItemStatus(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetItemStatus(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetItemStatus(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetItemStatus(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().ItemTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetItemType(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetItemType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetItemType(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetItemType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LabeledByProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().LabeledByProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLabeledBy(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Microsoft::UI::Xaml::UIElement>(this->shim().GetLabeledBy(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLabeledBy(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLabeledBy(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Microsoft::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().NameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetName(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetName(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetName(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetName(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LiveSettingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().LiveSettingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLiveSetting(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLiveSetting>(this->shim().GetLiveSetting(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLiveSetting(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLiveSetting(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLiveSetting const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AccessibilityViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().AccessibilityViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAccessibilityView(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Microsoft::UI::Xaml::Automation::Peers::AccessibilityView>(this->shim().GetAccessibilityView(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAccessibilityView(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAccessibilityView(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Microsoft::UI::Xaml::Automation::Peers::AccessibilityView const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ControlledPeersProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().ControlledPeersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetControlledPeers(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::UIElement>>(this->shim().GetControlledPeers(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PositionInSetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().PositionInSetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPositionInSet(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetPositionInSet(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetPositionInSet(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPositionInSet(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SizeOfSetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().SizeOfSetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetSizeOfSet(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetSizeOfSet(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetSizeOfSet(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSizeOfSet(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LevelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().LevelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLevel(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetLevel(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLevel(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLevel(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AnnotationsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().AnnotationsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAnnotations(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::Automation::AutomationAnnotation>>(this->shim().GetAnnotations(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LandmarkTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().LandmarkTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLandmarkType(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLandmarkType>(this->shim().GetLandmarkType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLandmarkType(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLandmarkType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLandmarkType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LocalizedLandmarkTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().LocalizedLandmarkTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLocalizedLandmarkType(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetLocalizedLandmarkType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLocalizedLandmarkType(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLocalizedLandmarkType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPeripheralProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().IsPeripheralProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsPeripheral(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsPeripheral(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsPeripheral(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsPeripheral(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDataValidForFormProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().IsDataValidForFormProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsDataValidForForm(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsDataValidForForm(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsDataValidForForm(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsDataValidForForm(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FullDescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().FullDescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetFullDescription(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetFullDescription(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetFullDescription(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetFullDescription(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LocalizedControlTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().LocalizedControlTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLocalizedControlType(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetLocalizedControlType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLocalizedControlType(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLocalizedControlType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescribedByProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().DescribedByProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetDescribedBy(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::DependencyObject>>(this->shim().GetDescribedBy(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FlowsToProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().FlowsToProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetFlowsTo(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::DependencyObject>>(this->shim().GetFlowsTo(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FlowsFromProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().FlowsFromProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetFlowsFrom(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Xaml::DependencyObject>>(this->shim().GetFlowsFrom(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CultureProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().CultureProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetCulture(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetCulture(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetCulture(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetCulture(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeadingLevelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().HeadingLevelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetHeadingLevel(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationHeadingLevel>(this->shim().GetHeadingLevel(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetHeadingLevel(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHeadingLevel(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationHeadingLevel const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDialogProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().IsDialogProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsDialog(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsDialog(*reinterpret_cast<winrt::Microsoft::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsDialog(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsDialog(*reinterpret_cast<winrt::Microsoft::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::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2>
    {
        int32_t __stdcall get_AutomationControlTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::DependencyProperty>(this->shim().AutomationControlTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAutomationControlType(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationControlType>(this->shim().GetAutomationControlType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAutomationControlType(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAutomationControlType(*reinterpret_cast<winrt::Microsoft::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationControlType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationProperty> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IAutomationProperty>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiersStatics>
    {
        int32_t __stdcall get_DockPositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().DockPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics>
    {
        int32_t __stdcall get_DropEffectProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().DropEffectProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DropEffectsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().DropEffectsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GrabbedItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().GrabbedItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGrabbedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsGrabbedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics>
    {
        int32_t __stdcall get_DropTargetEffectProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().DropTargetEffectProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DropTargetEffectsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().DropTargetEffectsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiersStatics>
    {
        int32_t __stdcall get_ExpandCollapseStateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ExpandCollapseStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics>
    {
        int32_t __stdcall get_ColumnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ColumnProperty());
            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::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ColumnSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContainingGridProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ContainingGridProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().RowProperty());
            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::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().RowSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics>
    {
        int32_t __stdcall get_ColumnCountProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ColumnCountProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowCountProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().RowCountProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics>
    {
        int32_t __stdcall get_CurrentViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CurrentViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SupportedViewsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().SupportedViewsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics>
    {
        int32_t __stdcall get_IsReadOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LargeChangeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().LargeChangeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().MaximumProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinimumProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().MinimumProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SmallChangeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().SmallChangeProperty());
            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::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics>
    {
        int32_t __stdcall get_HorizontallyScrollableProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().HorizontallyScrollableProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalScrollPercentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().HorizontalScrollPercentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalViewSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().HorizontalViewSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NoScroll(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().NoScroll());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticallyScrollableProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().VerticallyScrollableProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollPercentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().VerticalScrollPercentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalViewSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().VerticalViewSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics>
    {
        int32_t __stdcall get_IsSelectedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsSelectedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionContainerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().SelectionContainerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics>
    {
        int32_t __stdcall get_CanSelectMultipleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CanSelectMultipleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSelectionRequiredProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsSelectionRequiredProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().SelectionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiersStatics>
    {
        int32_t __stdcall get_FormulaProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().FormulaProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics>
    {
        int32_t __stdcall get_ExtendedPropertiesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ExtendedPropertiesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FillColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().FillColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FillPatternColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().FillPatternColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FillPatternStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().FillPatternStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShapeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ShapeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StyleIdProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().StyleIdProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StyleNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().StyleNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics>
    {
        int32_t __stdcall get_ColumnHeaderItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ColumnHeaderItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowHeaderItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().RowHeaderItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics>
    {
        int32_t __stdcall get_ColumnHeadersProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ColumnHeadersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowHeadersProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().RowHeadersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowOrColumnMajorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().RowOrColumnMajorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiersStatics>
    {
        int32_t __stdcall get_ToggleStateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ToggleStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2Identifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2Identifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics>
    {
        int32_t __stdcall get_CanZoomProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CanZoomProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomLevelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ZoomLevelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxZoomProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().MaxZoomProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinZoomProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().MinZoomProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics>
    {
        int32_t __stdcall get_CanMoveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CanMoveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanResizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CanResizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanRotateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CanRotateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics>
    {
        int32_t __stdcall get_IsReadOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsReadOnlyProperty());
            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::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().ValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiers> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiers>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics> : produce_base<D, winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics>
    {
        int32_t __stdcall get_CanMaximizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CanMaximizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanMinimizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().CanMinimizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsModalProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsModalProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTopmostProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().IsTopmostProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WindowInteractionStateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().WindowInteractionStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WindowVisualStateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty>(this->shim().WindowVisualStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
}
WINRT_EXPORT namespace winrt::Microsoft::UI::Xaml::Automation
{
    inline auto AnnotationPatternIdentifiers::AnnotationTypeIdProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAnnotationPatternIdentifiersStatics const&), AnnotationPatternIdentifiers, IAnnotationPatternIdentifiersStatics>([](IAnnotationPatternIdentifiersStatics const& f) { return f.AnnotationTypeIdProperty(); });
    }
    inline auto AnnotationPatternIdentifiers::AnnotationTypeNameProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAnnotationPatternIdentifiersStatics const&), AnnotationPatternIdentifiers, IAnnotationPatternIdentifiersStatics>([](IAnnotationPatternIdentifiersStatics const& f) { return f.AnnotationTypeNameProperty(); });
    }
    inline auto AnnotationPatternIdentifiers::AuthorProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAnnotationPatternIdentifiersStatics const&), AnnotationPatternIdentifiers, IAnnotationPatternIdentifiersStatics>([](IAnnotationPatternIdentifiersStatics const& f) { return f.AuthorProperty(); });
    }
    inline auto AnnotationPatternIdentifiers::DateTimeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAnnotationPatternIdentifiersStatics const&), AnnotationPatternIdentifiers, IAnnotationPatternIdentifiersStatics>([](IAnnotationPatternIdentifiersStatics const& f) { return f.DateTimeProperty(); });
    }
    inline auto AnnotationPatternIdentifiers::TargetProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAnnotationPatternIdentifiersStatics const&), AnnotationPatternIdentifiers, IAnnotationPatternIdentifiersStatics>([](IAnnotationPatternIdentifiersStatics const& f) { return f.TargetProperty(); });
    }
    inline AutomationAnnotation::AutomationAnnotation() :
        AutomationAnnotation(impl::call_factory_cast<AutomationAnnotation(*)(winrt::Windows::Foundation::IActivationFactory const&), AutomationAnnotation>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<AutomationAnnotation>(); }))
    {
    }
    inline AutomationAnnotation::AutomationAnnotation(winrt::Microsoft::UI::Xaml::Automation::AnnotationType const& type) :
        AutomationAnnotation(impl::call_factory<AutomationAnnotation, IAutomationAnnotationFactory>([&](IAutomationAnnotationFactory const& f) { return f.CreateInstance(type); }))
    {
    }
    inline AutomationAnnotation::AutomationAnnotation(winrt::Microsoft::UI::Xaml::Automation::AnnotationType const& type, winrt::Microsoft::UI::Xaml::UIElement const& element) :
        AutomationAnnotation(impl::call_factory<AutomationAnnotation, IAutomationAnnotationFactory>([&](IAutomationAnnotationFactory const& f) { return f.CreateWithElementParameter(type, element); }))
    {
    }
    inline auto AutomationAnnotation::TypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationAnnotationStatics const&), AutomationAnnotation, IAutomationAnnotationStatics>([](IAutomationAnnotationStatics const& f) { return f.TypeProperty(); });
    }
    inline auto AutomationAnnotation::ElementProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationAnnotationStatics const&), AutomationAnnotation, IAutomationAnnotationStatics>([](IAutomationAnnotationStatics const& f) { return f.ElementProperty(); });
    }
    inline auto AutomationElementIdentifiers::AcceleratorKeyProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.AcceleratorKeyProperty(); });
    }
    inline auto AutomationElementIdentifiers::AccessKeyProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.AccessKeyProperty(); });
    }
    inline auto AutomationElementIdentifiers::AutomationIdProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.AutomationIdProperty(); });
    }
    inline auto AutomationElementIdentifiers::BoundingRectangleProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.BoundingRectangleProperty(); });
    }
    inline auto AutomationElementIdentifiers::ClassNameProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.ClassNameProperty(); });
    }
    inline auto AutomationElementIdentifiers::ClickablePointProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.ClickablePointProperty(); });
    }
    inline auto AutomationElementIdentifiers::ControlTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.ControlTypeProperty(); });
    }
    inline auto AutomationElementIdentifiers::HasKeyboardFocusProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.HasKeyboardFocusProperty(); });
    }
    inline auto AutomationElementIdentifiers::HelpTextProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.HelpTextProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsContentElementProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsContentElementProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsControlElementProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsControlElementProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsEnabledProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsKeyboardFocusableProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsKeyboardFocusableProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsOffscreenProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsOffscreenProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsPasswordProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsPasswordProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsRequiredForFormProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsRequiredForFormProperty(); });
    }
    inline auto AutomationElementIdentifiers::ItemStatusProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.ItemStatusProperty(); });
    }
    inline auto AutomationElementIdentifiers::ItemTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.ItemTypeProperty(); });
    }
    inline auto AutomationElementIdentifiers::LabeledByProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.LabeledByProperty(); });
    }
    inline auto AutomationElementIdentifiers::LocalizedControlTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.LocalizedControlTypeProperty(); });
    }
    inline auto AutomationElementIdentifiers::NameProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.NameProperty(); });
    }
    inline auto AutomationElementIdentifiers::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto AutomationElementIdentifiers::LiveSettingProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.LiveSettingProperty(); });
    }
    inline auto AutomationElementIdentifiers::ControlledPeersProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.ControlledPeersProperty(); });
    }
    inline auto AutomationElementIdentifiers::PositionInSetProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.PositionInSetProperty(); });
    }
    inline auto AutomationElementIdentifiers::SizeOfSetProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.SizeOfSetProperty(); });
    }
    inline auto AutomationElementIdentifiers::LevelProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.LevelProperty(); });
    }
    inline auto AutomationElementIdentifiers::AnnotationsProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.AnnotationsProperty(); });
    }
    inline auto AutomationElementIdentifiers::LandmarkTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.LandmarkTypeProperty(); });
    }
    inline auto AutomationElementIdentifiers::LocalizedLandmarkTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.LocalizedLandmarkTypeProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsPeripheralProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsPeripheralProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsDataValidForFormProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsDataValidForFormProperty(); });
    }
    inline auto AutomationElementIdentifiers::FullDescriptionProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.FullDescriptionProperty(); });
    }
    inline auto AutomationElementIdentifiers::DescribedByProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.DescribedByProperty(); });
    }
    inline auto AutomationElementIdentifiers::FlowsToProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.FlowsToProperty(); });
    }
    inline auto AutomationElementIdentifiers::FlowsFromProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.FlowsFromProperty(); });
    }
    inline auto AutomationElementIdentifiers::CultureProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.CultureProperty(); });
    }
    inline auto AutomationElementIdentifiers::HeadingLevelProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.HeadingLevelProperty(); });
    }
    inline auto AutomationElementIdentifiers::IsDialogProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IAutomationElementIdentifiersStatics const&), AutomationElementIdentifiers, IAutomationElementIdentifiersStatics>([](IAutomationElementIdentifiersStatics const& f) { return f.IsDialogProperty(); });
    }
    inline auto AutomationProperties::AcceleratorKeyProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.AcceleratorKeyProperty(); });
    }
    inline auto AutomationProperties::GetAcceleratorKey(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetAcceleratorKey(element); });
    }
    inline auto AutomationProperties::SetAcceleratorKey(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetAcceleratorKey(element, value); });
    }
    inline auto AutomationProperties::AccessKeyProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.AccessKeyProperty(); });
    }
    inline auto AutomationProperties::GetAccessKey(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetAccessKey(element); });
    }
    inline auto AutomationProperties::SetAccessKey(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetAccessKey(element, value); });
    }
    inline auto AutomationProperties::AutomationIdProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.AutomationIdProperty(); });
    }
    inline auto AutomationProperties::GetAutomationId(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetAutomationId(element); });
    }
    inline auto AutomationProperties::SetAutomationId(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetAutomationId(element, value); });
    }
    inline auto AutomationProperties::HelpTextProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.HelpTextProperty(); });
    }
    inline auto AutomationProperties::GetHelpText(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetHelpText(element); });
    }
    inline auto AutomationProperties::SetHelpText(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetHelpText(element, value); });
    }
    inline auto AutomationProperties::IsRequiredForFormProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.IsRequiredForFormProperty(); });
    }
    inline auto AutomationProperties::GetIsRequiredForForm(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetIsRequiredForForm(element); });
    }
    inline auto AutomationProperties::SetIsRequiredForForm(winrt::Microsoft::UI::Xaml::DependencyObject const& element, bool value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetIsRequiredForForm(element, value); });
    }
    inline auto AutomationProperties::ItemStatusProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.ItemStatusProperty(); });
    }
    inline auto AutomationProperties::GetItemStatus(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetItemStatus(element); });
    }
    inline auto AutomationProperties::SetItemStatus(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetItemStatus(element, value); });
    }
    inline auto AutomationProperties::ItemTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.ItemTypeProperty(); });
    }
    inline auto AutomationProperties::GetItemType(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetItemType(element); });
    }
    inline auto AutomationProperties::SetItemType(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetItemType(element, value); });
    }
    inline auto AutomationProperties::LabeledByProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.LabeledByProperty(); });
    }
    inline auto AutomationProperties::GetLabeledBy(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetLabeledBy(element); });
    }
    inline auto AutomationProperties::SetLabeledBy(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::UIElement const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetLabeledBy(element, value); });
    }
    inline auto AutomationProperties::NameProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.NameProperty(); });
    }
    inline auto AutomationProperties::GetName(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetName(element); });
    }
    inline auto AutomationProperties::SetName(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetName(element, value); });
    }
    inline auto AutomationProperties::LiveSettingProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.LiveSettingProperty(); });
    }
    inline auto AutomationProperties::GetLiveSetting(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetLiveSetting(element); });
    }
    inline auto AutomationProperties::SetLiveSetting(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLiveSetting const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetLiveSetting(element, value); });
    }
    inline auto AutomationProperties::AccessibilityViewProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.AccessibilityViewProperty(); });
    }
    inline auto AutomationProperties::GetAccessibilityView(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetAccessibilityView(element); });
    }
    inline auto AutomationProperties::SetAccessibilityView(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AccessibilityView const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetAccessibilityView(element, value); });
    }
    inline auto AutomationProperties::ControlledPeersProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.ControlledPeersProperty(); });
    }
    inline auto AutomationProperties::GetControlledPeers(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetControlledPeers(element); });
    }
    inline auto AutomationProperties::PositionInSetProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.PositionInSetProperty(); });
    }
    inline auto AutomationProperties::GetPositionInSet(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetPositionInSet(element); });
    }
    inline auto AutomationProperties::SetPositionInSet(winrt::Microsoft::UI::Xaml::DependencyObject const& element, int32_t value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetPositionInSet(element, value); });
    }
    inline auto AutomationProperties::SizeOfSetProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.SizeOfSetProperty(); });
    }
    inline auto AutomationProperties::GetSizeOfSet(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetSizeOfSet(element); });
    }
    inline auto AutomationProperties::SetSizeOfSet(winrt::Microsoft::UI::Xaml::DependencyObject const& element, int32_t value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetSizeOfSet(element, value); });
    }
    inline auto AutomationProperties::LevelProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.LevelProperty(); });
    }
    inline auto AutomationProperties::GetLevel(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetLevel(element); });
    }
    inline auto AutomationProperties::SetLevel(winrt::Microsoft::UI::Xaml::DependencyObject const& element, int32_t value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetLevel(element, value); });
    }
    inline auto AutomationProperties::AnnotationsProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.AnnotationsProperty(); });
    }
    inline auto AutomationProperties::GetAnnotations(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetAnnotations(element); });
    }
    inline auto AutomationProperties::LandmarkTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.LandmarkTypeProperty(); });
    }
    inline auto AutomationProperties::GetLandmarkType(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetLandmarkType(element); });
    }
    inline auto AutomationProperties::SetLandmarkType(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationLandmarkType const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetLandmarkType(element, value); });
    }
    inline auto AutomationProperties::LocalizedLandmarkTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.LocalizedLandmarkTypeProperty(); });
    }
    inline auto AutomationProperties::GetLocalizedLandmarkType(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetLocalizedLandmarkType(element); });
    }
    inline auto AutomationProperties::SetLocalizedLandmarkType(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetLocalizedLandmarkType(element, value); });
    }
    inline auto AutomationProperties::IsPeripheralProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.IsPeripheralProperty(); });
    }
    inline auto AutomationProperties::GetIsPeripheral(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetIsPeripheral(element); });
    }
    inline auto AutomationProperties::SetIsPeripheral(winrt::Microsoft::UI::Xaml::DependencyObject const& element, bool value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetIsPeripheral(element, value); });
    }
    inline auto AutomationProperties::IsDataValidForFormProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.IsDataValidForFormProperty(); });
    }
    inline auto AutomationProperties::GetIsDataValidForForm(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetIsDataValidForForm(element); });
    }
    inline auto AutomationProperties::SetIsDataValidForForm(winrt::Microsoft::UI::Xaml::DependencyObject const& element, bool value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetIsDataValidForForm(element, value); });
    }
    inline auto AutomationProperties::FullDescriptionProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.FullDescriptionProperty(); });
    }
    inline auto AutomationProperties::GetFullDescription(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetFullDescription(element); });
    }
    inline auto AutomationProperties::SetFullDescription(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetFullDescription(element, value); });
    }
    inline auto AutomationProperties::LocalizedControlTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.LocalizedControlTypeProperty(); });
    }
    inline auto AutomationProperties::GetLocalizedControlType(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetLocalizedControlType(element); });
    }
    inline auto AutomationProperties::SetLocalizedControlType(winrt::Microsoft::UI::Xaml::DependencyObject const& element, param::hstring const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetLocalizedControlType(element, value); });
    }
    inline auto AutomationProperties::DescribedByProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.DescribedByProperty(); });
    }
    inline auto AutomationProperties::GetDescribedBy(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetDescribedBy(element); });
    }
    inline auto AutomationProperties::FlowsToProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.FlowsToProperty(); });
    }
    inline auto AutomationProperties::GetFlowsTo(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetFlowsTo(element); });
    }
    inline auto AutomationProperties::FlowsFromProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.FlowsFromProperty(); });
    }
    inline auto AutomationProperties::GetFlowsFrom(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetFlowsFrom(element); });
    }
    inline auto AutomationProperties::CultureProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.CultureProperty(); });
    }
    inline auto AutomationProperties::GetCulture(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetCulture(element); });
    }
    inline auto AutomationProperties::SetCulture(winrt::Microsoft::UI::Xaml::DependencyObject const& element, int32_t value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetCulture(element, value); });
    }
    inline auto AutomationProperties::HeadingLevelProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.HeadingLevelProperty(); });
    }
    inline auto AutomationProperties::GetHeadingLevel(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetHeadingLevel(element); });
    }
    inline auto AutomationProperties::SetHeadingLevel(winrt::Microsoft::UI::Xaml::DependencyObject const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationHeadingLevel const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetHeadingLevel(element, value); });
    }
    inline auto AutomationProperties::IsDialogProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics const&), AutomationProperties, IAutomationPropertiesStatics>([](IAutomationPropertiesStatics const& f) { return f.IsDialogProperty(); });
    }
    inline auto AutomationProperties::GetIsDialog(winrt::Microsoft::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.GetIsDialog(element); });
    }
    inline auto AutomationProperties::SetIsDialog(winrt::Microsoft::UI::Xaml::DependencyObject const& element, bool value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics>([&](IAutomationPropertiesStatics const& f) { return f.SetIsDialog(element, value); });
    }
    inline auto AutomationProperties::AutomationControlTypeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::DependencyProperty(*)(IAutomationPropertiesStatics2 const&), AutomationProperties, IAutomationPropertiesStatics2>([](IAutomationPropertiesStatics2 const& f) { return f.AutomationControlTypeProperty(); });
    }
    inline auto AutomationProperties::GetAutomationControlType(winrt::Microsoft::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<AutomationProperties, IAutomationPropertiesStatics2>([&](IAutomationPropertiesStatics2 const& f) { return f.GetAutomationControlType(element); });
    }
    inline auto AutomationProperties::SetAutomationControlType(winrt::Microsoft::UI::Xaml::UIElement const& element, winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationControlType const& value)
    {
        impl::call_factory<AutomationProperties, IAutomationPropertiesStatics2>([&](IAutomationPropertiesStatics2 const& f) { return f.SetAutomationControlType(element, value); });
    }
    inline auto DockPatternIdentifiers::DockPositionProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IDockPatternIdentifiersStatics const&), DockPatternIdentifiers, IDockPatternIdentifiersStatics>([](IDockPatternIdentifiersStatics const& f) { return f.DockPositionProperty(); });
    }
    inline auto DragPatternIdentifiers::DropEffectProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IDragPatternIdentifiersStatics const&), DragPatternIdentifiers, IDragPatternIdentifiersStatics>([](IDragPatternIdentifiersStatics const& f) { return f.DropEffectProperty(); });
    }
    inline auto DragPatternIdentifiers::DropEffectsProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IDragPatternIdentifiersStatics const&), DragPatternIdentifiers, IDragPatternIdentifiersStatics>([](IDragPatternIdentifiersStatics const& f) { return f.DropEffectsProperty(); });
    }
    inline auto DragPatternIdentifiers::GrabbedItemsProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IDragPatternIdentifiersStatics const&), DragPatternIdentifiers, IDragPatternIdentifiersStatics>([](IDragPatternIdentifiersStatics const& f) { return f.GrabbedItemsProperty(); });
    }
    inline auto DragPatternIdentifiers::IsGrabbedProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IDragPatternIdentifiersStatics const&), DragPatternIdentifiers, IDragPatternIdentifiersStatics>([](IDragPatternIdentifiersStatics const& f) { return f.IsGrabbedProperty(); });
    }
    inline auto DropTargetPatternIdentifiers::DropTargetEffectProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IDropTargetPatternIdentifiersStatics const&), DropTargetPatternIdentifiers, IDropTargetPatternIdentifiersStatics>([](IDropTargetPatternIdentifiersStatics const& f) { return f.DropTargetEffectProperty(); });
    }
    inline auto DropTargetPatternIdentifiers::DropTargetEffectsProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IDropTargetPatternIdentifiersStatics const&), DropTargetPatternIdentifiers, IDropTargetPatternIdentifiersStatics>([](IDropTargetPatternIdentifiersStatics const& f) { return f.DropTargetEffectsProperty(); });
    }
    inline auto ExpandCollapsePatternIdentifiers::ExpandCollapseStateProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IExpandCollapsePatternIdentifiersStatics const&), ExpandCollapsePatternIdentifiers, IExpandCollapsePatternIdentifiersStatics>([](IExpandCollapsePatternIdentifiersStatics const& f) { return f.ExpandCollapseStateProperty(); });
    }
    inline auto GridItemPatternIdentifiers::ColumnProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IGridItemPatternIdentifiersStatics const&), GridItemPatternIdentifiers, IGridItemPatternIdentifiersStatics>([](IGridItemPatternIdentifiersStatics const& f) { return f.ColumnProperty(); });
    }
    inline auto GridItemPatternIdentifiers::ColumnSpanProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IGridItemPatternIdentifiersStatics const&), GridItemPatternIdentifiers, IGridItemPatternIdentifiersStatics>([](IGridItemPatternIdentifiersStatics const& f) { return f.ColumnSpanProperty(); });
    }
    inline auto GridItemPatternIdentifiers::ContainingGridProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IGridItemPatternIdentifiersStatics const&), GridItemPatternIdentifiers, IGridItemPatternIdentifiersStatics>([](IGridItemPatternIdentifiersStatics const& f) { return f.ContainingGridProperty(); });
    }
    inline auto GridItemPatternIdentifiers::RowProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IGridItemPatternIdentifiersStatics const&), GridItemPatternIdentifiers, IGridItemPatternIdentifiersStatics>([](IGridItemPatternIdentifiersStatics const& f) { return f.RowProperty(); });
    }
    inline auto GridItemPatternIdentifiers::RowSpanProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IGridItemPatternIdentifiersStatics const&), GridItemPatternIdentifiers, IGridItemPatternIdentifiersStatics>([](IGridItemPatternIdentifiersStatics const& f) { return f.RowSpanProperty(); });
    }
    inline auto GridPatternIdentifiers::ColumnCountProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IGridPatternIdentifiersStatics const&), GridPatternIdentifiers, IGridPatternIdentifiersStatics>([](IGridPatternIdentifiersStatics const& f) { return f.ColumnCountProperty(); });
    }
    inline auto GridPatternIdentifiers::RowCountProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IGridPatternIdentifiersStatics const&), GridPatternIdentifiers, IGridPatternIdentifiersStatics>([](IGridPatternIdentifiersStatics const& f) { return f.RowCountProperty(); });
    }
    inline auto MultipleViewPatternIdentifiers::CurrentViewProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IMultipleViewPatternIdentifiersStatics const&), MultipleViewPatternIdentifiers, IMultipleViewPatternIdentifiersStatics>([](IMultipleViewPatternIdentifiersStatics const& f) { return f.CurrentViewProperty(); });
    }
    inline auto MultipleViewPatternIdentifiers::SupportedViewsProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IMultipleViewPatternIdentifiersStatics const&), MultipleViewPatternIdentifiers, IMultipleViewPatternIdentifiersStatics>([](IMultipleViewPatternIdentifiersStatics const& f) { return f.SupportedViewsProperty(); });
    }
    inline auto RangeValuePatternIdentifiers::IsReadOnlyProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IRangeValuePatternIdentifiersStatics const&), RangeValuePatternIdentifiers, IRangeValuePatternIdentifiersStatics>([](IRangeValuePatternIdentifiersStatics const& f) { return f.IsReadOnlyProperty(); });
    }
    inline auto RangeValuePatternIdentifiers::LargeChangeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IRangeValuePatternIdentifiersStatics const&), RangeValuePatternIdentifiers, IRangeValuePatternIdentifiersStatics>([](IRangeValuePatternIdentifiersStatics const& f) { return f.LargeChangeProperty(); });
    }
    inline auto RangeValuePatternIdentifiers::MaximumProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IRangeValuePatternIdentifiersStatics const&), RangeValuePatternIdentifiers, IRangeValuePatternIdentifiersStatics>([](IRangeValuePatternIdentifiersStatics const& f) { return f.MaximumProperty(); });
    }
    inline auto RangeValuePatternIdentifiers::MinimumProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IRangeValuePatternIdentifiersStatics const&), RangeValuePatternIdentifiers, IRangeValuePatternIdentifiersStatics>([](IRangeValuePatternIdentifiersStatics const& f) { return f.MinimumProperty(); });
    }
    inline auto RangeValuePatternIdentifiers::SmallChangeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IRangeValuePatternIdentifiersStatics const&), RangeValuePatternIdentifiers, IRangeValuePatternIdentifiersStatics>([](IRangeValuePatternIdentifiersStatics const& f) { return f.SmallChangeProperty(); });
    }
    inline auto RangeValuePatternIdentifiers::ValueProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IRangeValuePatternIdentifiersStatics const&), RangeValuePatternIdentifiers, IRangeValuePatternIdentifiersStatics>([](IRangeValuePatternIdentifiersStatics const& f) { return f.ValueProperty(); });
    }
    inline auto ScrollPatternIdentifiers::HorizontallyScrollableProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IScrollPatternIdentifiersStatics const&), ScrollPatternIdentifiers, IScrollPatternIdentifiersStatics>([](IScrollPatternIdentifiersStatics const& f) { return f.HorizontallyScrollableProperty(); });
    }
    inline auto ScrollPatternIdentifiers::HorizontalScrollPercentProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IScrollPatternIdentifiersStatics const&), ScrollPatternIdentifiers, IScrollPatternIdentifiersStatics>([](IScrollPatternIdentifiersStatics const& f) { return f.HorizontalScrollPercentProperty(); });
    }
    inline auto ScrollPatternIdentifiers::HorizontalViewSizeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IScrollPatternIdentifiersStatics const&), ScrollPatternIdentifiers, IScrollPatternIdentifiersStatics>([](IScrollPatternIdentifiersStatics const& f) { return f.HorizontalViewSizeProperty(); });
    }
    inline auto ScrollPatternIdentifiers::NoScroll()
    {
        return impl::call_factory_cast<double(*)(IScrollPatternIdentifiersStatics const&), ScrollPatternIdentifiers, IScrollPatternIdentifiersStatics>([](IScrollPatternIdentifiersStatics const& f) { return f.NoScroll(); });
    }
    inline auto ScrollPatternIdentifiers::VerticallyScrollableProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IScrollPatternIdentifiersStatics const&), ScrollPatternIdentifiers, IScrollPatternIdentifiersStatics>([](IScrollPatternIdentifiersStatics const& f) { return f.VerticallyScrollableProperty(); });
    }
    inline auto ScrollPatternIdentifiers::VerticalScrollPercentProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IScrollPatternIdentifiersStatics const&), ScrollPatternIdentifiers, IScrollPatternIdentifiersStatics>([](IScrollPatternIdentifiersStatics const& f) { return f.VerticalScrollPercentProperty(); });
    }
    inline auto ScrollPatternIdentifiers::VerticalViewSizeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IScrollPatternIdentifiersStatics const&), ScrollPatternIdentifiers, IScrollPatternIdentifiersStatics>([](IScrollPatternIdentifiersStatics const& f) { return f.VerticalViewSizeProperty(); });
    }
    inline auto SelectionItemPatternIdentifiers::IsSelectedProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ISelectionItemPatternIdentifiersStatics const&), SelectionItemPatternIdentifiers, ISelectionItemPatternIdentifiersStatics>([](ISelectionItemPatternIdentifiersStatics const& f) { return f.IsSelectedProperty(); });
    }
    inline auto SelectionItemPatternIdentifiers::SelectionContainerProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ISelectionItemPatternIdentifiersStatics const&), SelectionItemPatternIdentifiers, ISelectionItemPatternIdentifiersStatics>([](ISelectionItemPatternIdentifiersStatics const& f) { return f.SelectionContainerProperty(); });
    }
    inline auto SelectionPatternIdentifiers::CanSelectMultipleProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ISelectionPatternIdentifiersStatics const&), SelectionPatternIdentifiers, ISelectionPatternIdentifiersStatics>([](ISelectionPatternIdentifiersStatics const& f) { return f.CanSelectMultipleProperty(); });
    }
    inline auto SelectionPatternIdentifiers::IsSelectionRequiredProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ISelectionPatternIdentifiersStatics const&), SelectionPatternIdentifiers, ISelectionPatternIdentifiersStatics>([](ISelectionPatternIdentifiersStatics const& f) { return f.IsSelectionRequiredProperty(); });
    }
    inline auto SelectionPatternIdentifiers::SelectionProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ISelectionPatternIdentifiersStatics const&), SelectionPatternIdentifiers, ISelectionPatternIdentifiersStatics>([](ISelectionPatternIdentifiersStatics const& f) { return f.SelectionProperty(); });
    }
    inline auto SpreadsheetItemPatternIdentifiers::FormulaProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ISpreadsheetItemPatternIdentifiersStatics const&), SpreadsheetItemPatternIdentifiers, ISpreadsheetItemPatternIdentifiersStatics>([](ISpreadsheetItemPatternIdentifiersStatics const& f) { return f.FormulaProperty(); });
    }
    inline auto StylesPatternIdentifiers::ExtendedPropertiesProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IStylesPatternIdentifiersStatics const&), StylesPatternIdentifiers, IStylesPatternIdentifiersStatics>([](IStylesPatternIdentifiersStatics const& f) { return f.ExtendedPropertiesProperty(); });
    }
    inline auto StylesPatternIdentifiers::FillColorProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IStylesPatternIdentifiersStatics const&), StylesPatternIdentifiers, IStylesPatternIdentifiersStatics>([](IStylesPatternIdentifiersStatics const& f) { return f.FillColorProperty(); });
    }
    inline auto StylesPatternIdentifiers::FillPatternColorProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IStylesPatternIdentifiersStatics const&), StylesPatternIdentifiers, IStylesPatternIdentifiersStatics>([](IStylesPatternIdentifiersStatics const& f) { return f.FillPatternColorProperty(); });
    }
    inline auto StylesPatternIdentifiers::FillPatternStyleProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IStylesPatternIdentifiersStatics const&), StylesPatternIdentifiers, IStylesPatternIdentifiersStatics>([](IStylesPatternIdentifiersStatics const& f) { return f.FillPatternStyleProperty(); });
    }
    inline auto StylesPatternIdentifiers::ShapeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IStylesPatternIdentifiersStatics const&), StylesPatternIdentifiers, IStylesPatternIdentifiersStatics>([](IStylesPatternIdentifiersStatics const& f) { return f.ShapeProperty(); });
    }
    inline auto StylesPatternIdentifiers::StyleIdProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IStylesPatternIdentifiersStatics const&), StylesPatternIdentifiers, IStylesPatternIdentifiersStatics>([](IStylesPatternIdentifiersStatics const& f) { return f.StyleIdProperty(); });
    }
    inline auto StylesPatternIdentifiers::StyleNameProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IStylesPatternIdentifiersStatics const&), StylesPatternIdentifiers, IStylesPatternIdentifiersStatics>([](IStylesPatternIdentifiersStatics const& f) { return f.StyleNameProperty(); });
    }
    inline auto TableItemPatternIdentifiers::ColumnHeaderItemsProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITableItemPatternIdentifiersStatics const&), TableItemPatternIdentifiers, ITableItemPatternIdentifiersStatics>([](ITableItemPatternIdentifiersStatics const& f) { return f.ColumnHeaderItemsProperty(); });
    }
    inline auto TableItemPatternIdentifiers::RowHeaderItemsProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITableItemPatternIdentifiersStatics const&), TableItemPatternIdentifiers, ITableItemPatternIdentifiersStatics>([](ITableItemPatternIdentifiersStatics const& f) { return f.RowHeaderItemsProperty(); });
    }
    inline auto TablePatternIdentifiers::ColumnHeadersProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITablePatternIdentifiersStatics const&), TablePatternIdentifiers, ITablePatternIdentifiersStatics>([](ITablePatternIdentifiersStatics const& f) { return f.ColumnHeadersProperty(); });
    }
    inline auto TablePatternIdentifiers::RowHeadersProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITablePatternIdentifiersStatics const&), TablePatternIdentifiers, ITablePatternIdentifiersStatics>([](ITablePatternIdentifiersStatics const& f) { return f.RowHeadersProperty(); });
    }
    inline auto TablePatternIdentifiers::RowOrColumnMajorProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITablePatternIdentifiersStatics const&), TablePatternIdentifiers, ITablePatternIdentifiersStatics>([](ITablePatternIdentifiersStatics const& f) { return f.RowOrColumnMajorProperty(); });
    }
    inline auto TogglePatternIdentifiers::ToggleStateProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITogglePatternIdentifiersStatics const&), TogglePatternIdentifiers, ITogglePatternIdentifiersStatics>([](ITogglePatternIdentifiersStatics const& f) { return f.ToggleStateProperty(); });
    }
    inline auto TransformPattern2Identifiers::CanZoomProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITransformPattern2IdentifiersStatics const&), TransformPattern2Identifiers, ITransformPattern2IdentifiersStatics>([](ITransformPattern2IdentifiersStatics const& f) { return f.CanZoomProperty(); });
    }
    inline auto TransformPattern2Identifiers::ZoomLevelProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITransformPattern2IdentifiersStatics const&), TransformPattern2Identifiers, ITransformPattern2IdentifiersStatics>([](ITransformPattern2IdentifiersStatics const& f) { return f.ZoomLevelProperty(); });
    }
    inline auto TransformPattern2Identifiers::MaxZoomProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITransformPattern2IdentifiersStatics const&), TransformPattern2Identifiers, ITransformPattern2IdentifiersStatics>([](ITransformPattern2IdentifiersStatics const& f) { return f.MaxZoomProperty(); });
    }
    inline auto TransformPattern2Identifiers::MinZoomProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITransformPattern2IdentifiersStatics const&), TransformPattern2Identifiers, ITransformPattern2IdentifiersStatics>([](ITransformPattern2IdentifiersStatics const& f) { return f.MinZoomProperty(); });
    }
    inline auto TransformPatternIdentifiers::CanMoveProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITransformPatternIdentifiersStatics const&), TransformPatternIdentifiers, ITransformPatternIdentifiersStatics>([](ITransformPatternIdentifiersStatics const& f) { return f.CanMoveProperty(); });
    }
    inline auto TransformPatternIdentifiers::CanResizeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITransformPatternIdentifiersStatics const&), TransformPatternIdentifiers, ITransformPatternIdentifiersStatics>([](ITransformPatternIdentifiersStatics const& f) { return f.CanResizeProperty(); });
    }
    inline auto TransformPatternIdentifiers::CanRotateProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(ITransformPatternIdentifiersStatics const&), TransformPatternIdentifiers, ITransformPatternIdentifiersStatics>([](ITransformPatternIdentifiersStatics const& f) { return f.CanRotateProperty(); });
    }
    inline auto ValuePatternIdentifiers::IsReadOnlyProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IValuePatternIdentifiersStatics const&), ValuePatternIdentifiers, IValuePatternIdentifiersStatics>([](IValuePatternIdentifiersStatics const& f) { return f.IsReadOnlyProperty(); });
    }
    inline auto ValuePatternIdentifiers::ValueProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IValuePatternIdentifiersStatics const&), ValuePatternIdentifiers, IValuePatternIdentifiersStatics>([](IValuePatternIdentifiersStatics const& f) { return f.ValueProperty(); });
    }
    inline auto WindowPatternIdentifiers::CanMaximizeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IWindowPatternIdentifiersStatics const&), WindowPatternIdentifiers, IWindowPatternIdentifiersStatics>([](IWindowPatternIdentifiersStatics const& f) { return f.CanMaximizeProperty(); });
    }
    inline auto WindowPatternIdentifiers::CanMinimizeProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IWindowPatternIdentifiersStatics const&), WindowPatternIdentifiers, IWindowPatternIdentifiersStatics>([](IWindowPatternIdentifiersStatics const& f) { return f.CanMinimizeProperty(); });
    }
    inline auto WindowPatternIdentifiers::IsModalProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IWindowPatternIdentifiersStatics const&), WindowPatternIdentifiers, IWindowPatternIdentifiersStatics>([](IWindowPatternIdentifiersStatics const& f) { return f.IsModalProperty(); });
    }
    inline auto WindowPatternIdentifiers::IsTopmostProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IWindowPatternIdentifiersStatics const&), WindowPatternIdentifiers, IWindowPatternIdentifiersStatics>([](IWindowPatternIdentifiersStatics const& f) { return f.IsTopmostProperty(); });
    }
    inline auto WindowPatternIdentifiers::WindowInteractionStateProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IWindowPatternIdentifiersStatics const&), WindowPatternIdentifiers, IWindowPatternIdentifiersStatics>([](IWindowPatternIdentifiersStatics const& f) { return f.WindowInteractionStateProperty(); });
    }
    inline auto WindowPatternIdentifiers::WindowVisualStateProperty()
    {
        return impl::call_factory_cast<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty(*)(IWindowPatternIdentifiersStatics const&), WindowPatternIdentifiers, IWindowPatternIdentifiersStatics>([](IWindowPatternIdentifiersStatics const& f) { return f.WindowVisualStateProperty(); });
    }
}
namespace std
{
#ifndef WINRT_LEAN_AND_MEAN
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAnnotationPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotation> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationAnnotationStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationElementIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationProperties> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationPropertiesStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IAutomationProperty> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IDockPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IDragPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IDropTargetPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IExpandCollapsePatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IGridItemPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IGridPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IMultipleViewPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IRangeValuePatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IScrollPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ISelectionItemPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ISelectionPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ISpreadsheetItemPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IStylesPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITableItemPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITablePatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITogglePatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2Identifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITransformPattern2IdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ITransformPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IValuePatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::IWindowPatternIdentifiersStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::AnnotationPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::AutomationAnnotation> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::AutomationElementIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::AutomationProperties> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::AutomationProperty> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::DockPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::DragPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::DropTargetPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ExpandCollapsePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::GridItemPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::GridPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::MultipleViewPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::RangeValuePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ScrollPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::SelectionItemPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::SelectionPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::SpreadsheetItemPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::StylesPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::TableItemPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::TablePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::TogglePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::TransformPattern2Identifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::TransformPatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::ValuePatternIdentifiers> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Microsoft::UI::Xaml::Automation::WindowPatternIdentifiers> : winrt::impl::hash_base {};
#endif
#ifdef __cpp_lib_format
#endif
}
#endif
