// C++/WinRT v2.0.190620.2

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

#ifndef WINRT_Windows_UI_Xaml_Controls_H
#define WINRT_Windows_UI_Xaml_Controls_H
#include "base.h"
static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.190620.2"), "Mismatched C++/WinRT headers.");
#include "Windows.UI.Xaml.h"
#include "impl/Windows.ApplicationModel.Contacts.2.h"
#include "impl/Windows.ApplicationModel.DataTransfer.2.h"
#include "impl/Windows.ApplicationModel.Search.2.h"
#include "impl/Windows.Foundation.2.h"
#include "impl/Windows.Foundation.Collections.2.h"
#include "impl/Windows.Globalization.2.h"
#include "impl/Windows.Media.Capture.2.h"
#include "impl/Windows.Media.Casting.2.h"
#include "impl/Windows.Media.Core.2.h"
#include "impl/Windows.Media.PlayTo.2.h"
#include "impl/Windows.Media.Playback.2.h"
#include "impl/Windows.Media.Protection.2.h"
#include "impl/Windows.Storage.Streams.2.h"
#include "impl/Windows.System.2.h"
#include "impl/Windows.UI.2.h"
#include "impl/Windows.UI.Composition.2.h"
#include "impl/Windows.UI.Core.2.h"
#include "impl/Windows.UI.Input.Inking.2.h"
#include "impl/Windows.UI.Text.2.h"
#include "impl/Windows.UI.Xaml.2.h"
#include "impl/Windows.UI.Xaml.Automation.Peers.2.h"
#include "impl/Windows.UI.Xaml.Automation.Provider.2.h"
#include "impl/Windows.UI.Xaml.Controls.Primitives.2.h"
#include "impl/Windows.UI.Xaml.Data.2.h"
#include "impl/Windows.UI.Xaml.Documents.2.h"
#include "impl/Windows.UI.Xaml.Input.2.h"
#include "impl/Windows.UI.Xaml.Interop.2.h"
#include "impl/Windows.UI.Xaml.Media.2.h"
#include "impl/Windows.UI.Xaml.Media.Animation.2.h"
#include "impl/Windows.UI.Xaml.Navigation.2.h"
#include "impl/Windows.Web.2.h"
#include "impl/Windows.Web.Http.2.h"
#include "impl/Windows.UI.Xaml.Controls.2.h"
namespace winrt::impl
{
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::Anchor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs)->get_Anchor(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::Anchor(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs)->put_Anchor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::AnchorCandidates() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs)->get_AnchorCandidates(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::UIElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsOpen() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar)->get_IsOpen(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsOpen(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar)->put_IsOpen(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsSticky() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar)->get_IsSticky(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsSticky(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar)->put_IsSticky(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar)->add_Opened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened_revoker consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar)->remove_Opened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar)->add_Closed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed_revoker consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar)->remove_Closed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar2<D>::ClosedDisplayMode() const
    {
        Windows::UI::Xaml::Controls::AppBarClosedDisplayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar2)->get_ClosedDisplayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar2<D>::ClosedDisplayMode(Windows::UI::Xaml::Controls::AppBarClosedDisplayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar2)->put_ClosedDisplayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->add_Opening(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening_revoker consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Opening_revoker>(this, Opening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->remove_Opening(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->add_Closing(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing_revoker consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Closing_revoker>(this, Closing(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->remove_Closing(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar4<D>::LightDismissOverlayMode() const
    {
        Windows::UI::Xaml::Controls::LightDismissOverlayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar4)->get_LightDismissOverlayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar4<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBar4)->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Label() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton)->get_Label(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Label(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton)->put_Label(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Icon() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton)->get_Icon(&value));
        return Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton)->put_Icon(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton3<D>::LabelPosition() const
    {
        Windows::UI::Xaml::Controls::CommandBarLabelPosition value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton3)->get_LabelPosition(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton3<D>::LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton3)->put_LabelPosition(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton4<D>::KeyboardAcceleratorTextOverride() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton4)->get_KeyboardAcceleratorTextOverride(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton4<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton4)->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton5<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButton5)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::AppBarButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::LabelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics)->get_LabelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::IconProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics)->get_IconProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::IsCompactProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics)->get_IsCompactProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::LabelPositionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics3)->get_LabelPositionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::IsInOverflowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics3)->get_IsInOverflowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::DynamicOverflowOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics3)->get_DynamicOverflowOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics4<D>::KeyboardAcceleratorTextOverrideProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics4)->get_KeyboardAcceleratorTextOverrideProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarElementContainerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarElementContainerFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::AppBarElementContainer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::IsCompactProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarElementContainerStatics)->get_IsCompactProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::IsInOverflowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarElementContainerStatics)->get_IsInOverflowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::DynamicOverflowOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarElementContainerStatics)->get_DynamicOverflowOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::AppBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarOverrides<D>::OnClosed(Windows::Foundation::IInspectable const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarOverrides)->OnClosed(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarOverrides<D>::OnOpened(Windows::Foundation::IInspectable const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarOverrides)->OnOpened(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarOverrides3<D>::OnClosing(Windows::Foundation::IInspectable const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarOverrides3)->OnClosing(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarOverrides3<D>::OnOpening(Windows::Foundation::IInspectable const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarOverrides3)->OnOpening(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarSeparatorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::AppBarSeparator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics<D>::IsCompactProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorStatics)->get_IsCompactProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics3<D>::IsInOverflowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3)->get_IsInOverflowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics3<D>::DynamicOverflowOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3)->get_DynamicOverflowOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarStatics<D>::IsOpenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarStatics)->get_IsOpenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarStatics<D>::IsStickyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarStatics)->get_IsStickyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarStatics2<D>::ClosedDisplayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarStatics2)->get_ClosedDisplayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarStatics4<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarStatics4)->get_LightDismissOverlayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Label() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton)->get_Label(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Label(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton)->put_Label(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Icon() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton)->get_Icon(&value));
        return Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton)->put_Icon(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton3<D>::LabelPosition() const
    {
        Windows::UI::Xaml::Controls::CommandBarLabelPosition value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton3)->get_LabelPosition(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton3<D>::LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton3)->put_LabelPosition(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton4<D>::KeyboardAcceleratorTextOverride() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton4)->get_KeyboardAcceleratorTextOverride(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton4<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton4)->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton5<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton5)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::AppBarToggleButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::LabelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics)->get_LabelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::IconProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics)->get_IconProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::IsCompactProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics)->get_IsCompactProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::LabelPositionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3)->get_LabelPositionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::IsInOverflowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3)->get_IsInOverflowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::DynamicOverflowOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3)->get_DynamicOverflowOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics4<D>::KeyboardAcceleratorTextOverrideProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4)->get_KeyboardAcceleratorTextOverrideProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::MaxSuggestionListHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_MaxSuggestionListHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::MaxSuggestionListHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_MaxSuggestionListHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::IsSuggestionListOpen() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_IsSuggestionListOpen(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::IsSuggestionListOpen(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_IsSuggestionListOpen(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextMemberPath() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_TextMemberPath(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextMemberPath(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_TextMemberPath(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Text() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_Text(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Text(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_Text(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::UpdateTextOnSelect() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_UpdateTextOnSelect(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::UpdateTextOnSelect(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_UpdateTextOnSelect(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::PlaceholderText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_PlaceholderText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::PlaceholderText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_PlaceholderText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::AutoMaximizeSuggestionArea() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_AutoMaximizeSuggestionArea(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::AutoMaximizeSuggestionArea(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_AutoMaximizeSuggestionArea(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextBoxStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_TextBoxStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextBoxStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_TextBoxStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->add_SuggestionChosen(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen_revoker consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SuggestionChosen_revoker>(this, SuggestionChosen(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->remove_SuggestionChosen(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->add_TextChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged_revoker consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextChanged_revoker>(this, TextChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->remove_TextChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QueryIcon() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->get_QueryIcon(&value));
        return Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QueryIcon(Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->put_QueryIcon(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->add_QuerySubmitted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted_revoker consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, QuerySubmitted_revoker>(this, QuerySubmitted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->remove_QuerySubmitted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox3<D>::LightDismissOverlayMode() const
    {
        Windows::UI::Xaml::Controls::LightDismissOverlayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox3)->get_LightDismissOverlayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox3<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox3)->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox4<D>::Description() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox4)->get_Description(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox4<D>::Description(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox4)->put_Description(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxQuerySubmittedEventArgs<D>::QueryText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs)->get_QueryText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxQuerySubmittedEventArgs<D>::ChosenSuggestion() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs)->get_ChosenSuggestion(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::MaxSuggestionListHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_MaxSuggestionListHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::IsSuggestionListOpenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_IsSuggestionListOpenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextMemberPathProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_TextMemberPathProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_TextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::UpdateTextOnSelectProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_UpdateTextOnSelectProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::PlaceholderTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_PlaceholderTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::AutoMaximizeSuggestionAreaProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_AutoMaximizeSuggestionAreaProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextBoxStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_TextBoxStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics2<D>::QueryIconProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2)->get_QueryIconProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics3<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3)->get_LightDismissOverlayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics4<D>::DescriptionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4)->get_DescriptionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxSuggestionChosenEventArgs<D>::SelectedItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs)->get_SelectedItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::Reason() const
    {
        Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs)->get_Reason(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::Reason(Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs)->put_Reason(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::CheckCurrent() const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs)->CheckCurrent(&result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgsStatics<D>::ReasonProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics)->get_ReasonProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBackClickEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBackClickEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBackClickEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBackClickEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIcon<D>::UriSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIcon)->get_UriSource(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIcon<D>::UriSource(Windows::Foundation::Uri const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIcon)->put_UriSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIcon2<D>::ShowAsMonochrome() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIcon2)->get_ShowAsMonochrome(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIcon2<D>::ShowAsMonochrome(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIcon2)->put_ShowAsMonochrome(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::BitmapIcon{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::UriSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSource)->get_UriSource(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::UriSource(Windows::Foundation::Uri const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSource)->put_UriSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::ShowAsMonochrome() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSource)->get_ShowAsMonochrome(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::ShowAsMonochrome(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSource)->put_ShowAsMonochrome(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSourceFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSourceFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::BitmapIconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSourceStatics<D>::UriSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSourceStatics)->get_UriSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSourceStatics<D>::ShowAsMonochromeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSourceStatics)->get_ShowAsMonochromeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconStatics<D>::UriSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconStatics)->get_UriSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconStatics2<D>::ShowAsMonochromeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBitmapIconStatics2)->get_ShowAsMonochromeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_BorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_BorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderThickness() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_BorderThickness(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_BorderThickness(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Background() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_Background(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_Background(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::CornerRadius() const
    {
        Windows::UI::Xaml::CornerRadius value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_CornerRadius(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_CornerRadius(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Child() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_Child(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Child(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_Child(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::ChildTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_ChildTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::ChildTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_ChildTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundSizing() const
    {
        Windows::UI::Xaml::Controls::BackgroundSizing value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder2)->get_BackgroundSizing(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder2)->put_BackgroundSizing(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundTransition() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder2)->get_BackgroundTransition(&value));
        return Windows::UI::Xaml::BrushTransition{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundTransition(Windows::UI::Xaml::BrushTransition const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorder2)->put_BackgroundTransition(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_BorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BorderThicknessProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_BorderThicknessProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_BackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::CornerRadiusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_CornerRadiusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::ChildTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_ChildTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics2<D>::BackgroundSizingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IBorderStatics2)->get_BackgroundSizingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Button{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IButtonStaticsWithFlyout<D>::FlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout)->get_FlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IButtonWithFlyout<D>::Flyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IButtonWithFlyout)->get_Flyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IButtonWithFlyout<D>::Flyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IButtonWithFlyout)->put_Flyout(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Date() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_Date(&value));
        return Windows::Foundation::IReference<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Date(Windows::Foundation::IReference<Windows::Foundation::DateTime> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_Date(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsCalendarOpen() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_IsCalendarOpen(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsCalendarOpen(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_IsCalendarOpen(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_DateFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_DateFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::PlaceholderText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_PlaceholderText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::PlaceholderText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_PlaceholderText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_CalendarViewStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_CalendarViewStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MinDate() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_MinDate(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MinDate(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_MinDate(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MaxDate() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_MaxDate(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MaxDate(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_MaxDate(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsTodayHighlighted() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_IsTodayHighlighted(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsTodayHighlighted(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_IsTodayHighlighted(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DisplayMode() const
    {
        Windows::UI::Xaml::Controls::CalendarViewDisplayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_DisplayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_DisplayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::FirstDayOfWeek() const
    {
        Windows::Globalization::DayOfWeek value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_FirstDayOfWeek(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::FirstDayOfWeek(Windows::Globalization::DayOfWeek const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_FirstDayOfWeek(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DayOfWeekFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_DayOfWeekFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DayOfWeekFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_DayOfWeekFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarIdentifier() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_CalendarIdentifier(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarIdentifier(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_CalendarIdentifier(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsOutOfScopeEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_IsOutOfScopeEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsOutOfScopeEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_IsOutOfScopeEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsGroupLabelVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_IsGroupLabelVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsGroupLabelVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_IsGroupLabelVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_CalendarViewDayItemChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging_revoker consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(auto_revoke_t, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, CalendarViewDayItemChanging_revoker>(this, CalendarViewDayItemChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_CalendarViewDayItemChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarDatePicker, Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_DateChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged_revoker consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarDatePicker, Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DateChanged_revoker>(this, DateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_DateChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_Opened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened_revoker consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_Opened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_Closed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed_revoker consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_Closed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::SetDisplayDate(Windows::Foundation::DateTime const& date) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->SetDisplayDate(impl::bind_in(date)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->SetYearDecadeDisplayDimensions(columns, rows));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker2<D>::LightDismissOverlayMode() const
    {
        Windows::UI::Xaml::Controls::LightDismissOverlayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker2)->get_LightDismissOverlayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker2<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker2)->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker3<D>::Description() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker3)->get_Description(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker3<D>::Description(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker3)->put_Description(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerDateChangedEventArgs<D>::NewDate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs)->get_NewDate(&value));
        return Windows::Foundation::IReference<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerDateChangedEventArgs<D>::OldDate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs)->get_OldDate(&value));
        return Windows::Foundation::IReference<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::CalendarDatePicker{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_DateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsCalendarOpenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_IsCalendarOpenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DateFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_DateFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::PlaceholderTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_PlaceholderTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::CalendarViewStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_CalendarViewStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::MinDateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_MinDateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::MaxDateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_MaxDateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsTodayHighlightedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_IsTodayHighlightedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DisplayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_DisplayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::FirstDayOfWeekProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_FirstDayOfWeekProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DayOfWeekFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_DayOfWeekFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::CalendarIdentifierProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_CalendarIdentifierProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsOutOfScopeEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_IsOutOfScopeEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsGroupLabelVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_IsGroupLabelVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics2<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2)->get_LightDismissOverlayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics3<D>::DescriptionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3)->get_DescriptionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarIdentifier() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarIdentifier(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarIdentifier(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarIdentifier(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayOfWeekFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayOfWeekFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayOfWeekFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayOfWeekFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsGroupLabelVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_IsGroupLabelVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsGroupLabelVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_IsGroupLabelVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DisplayMode() const
    {
        Windows::UI::Xaml::Controls::CalendarViewDisplayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DisplayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DisplayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstDayOfWeek() const
    {
        Windows::Globalization::DayOfWeek value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstDayOfWeek(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstDayOfWeek(Windows::Globalization::DayOfWeek const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstDayOfWeek(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsOutOfScopeEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_IsOutOfScopeEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsOutOfScopeEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_IsOutOfScopeEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsTodayHighlighted() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_IsTodayHighlighted(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsTodayHighlighted(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_IsTodayHighlighted(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MaxDate() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MaxDate(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MaxDate(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MaxDate(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MinDate() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MinDate(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MinDate(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MinDate(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::NumberOfWeeksInView() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_NumberOfWeeksInView(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::NumberOfWeeksInView(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_NumberOfWeeksInView(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDates() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedDates(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectionMode() const
    {
        Windows::UI::Xaml::Controls::CalendarViewSelectionMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectionMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectionMode(Windows::UI::Xaml::Controls::CalendarViewSelectionMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectionMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FocusBorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FocusBorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FocusBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FocusBorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedHoverBorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedHoverBorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedHoverBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectedHoverBorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedPressedBorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedPressedBorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedPressedBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectedPressedBorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedBorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedBorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectedBorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HoverBorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_HoverBorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HoverBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_HoverBorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedBorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_PressedBorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_PressedBorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarItemBorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarItemBorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeBackground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_OutOfScopeBackground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeBackground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_OutOfScopeBackground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBackground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarItemBackground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBackground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarItemBackground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_PressedForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_PressedForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_TodayForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_TodayForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::BlackoutForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_BlackoutForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::BlackoutForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_BlackoutForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectedForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_OutOfScopeForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_OutOfScopeForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarItemForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarItemForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayItemFontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayItemFontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayItemFontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayItemFontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayItemFontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayItemFontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayItemFontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayItemFontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayFontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_TodayFontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayFontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_TodayFontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfMonthLabelFontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfMonthLabelFontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfMonthLabelFontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfMonthLabelFontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfMonthLabelFontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfMonthLabelFontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfMonthLabelFontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfMonthLabelFontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MonthYearItemFontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MonthYearItemFontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MonthYearItemFontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MonthYearItemFontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MonthYearItemFontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MonthYearItemFontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MonthYearItemFontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MonthYearItemFontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfYearDecadeLabelFontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfYearDecadeLabelFontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfYearDecadeLabelFontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfYearDecadeLabelFontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfYearDecadeLabelFontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfYearDecadeLabelFontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfYearDecadeLabelFontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfYearDecadeLabelFontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalDayItemAlignment() const
    {
        Windows::UI::Xaml::HorizontalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_HorizontalDayItemAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalDayItemAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_HorizontalDayItemAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalDayItemAlignment() const
    {
        Windows::UI::Xaml::VerticalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_VerticalDayItemAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalDayItemAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_VerticalDayItemAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalFirstOfMonthLabelAlignment() const
    {
        Windows::UI::Xaml::HorizontalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_HorizontalFirstOfMonthLabelAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalFirstOfMonthLabelAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_HorizontalFirstOfMonthLabelAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalFirstOfMonthLabelAlignment() const
    {
        Windows::UI::Xaml::VerticalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_VerticalFirstOfMonthLabelAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalFirstOfMonthLabelAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_VerticalFirstOfMonthLabelAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderThickness() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarItemBorderThickness(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderThickness(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarItemBorderThickness(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarViewDayItemStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarViewDayItemStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->add_CalendarViewDayItemChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging_revoker consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CalendarViewDayItemChanging_revoker>(this, CalendarViewDayItemChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->remove_CalendarViewDayItemChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->add_SelectedDatesChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged_revoker consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectedDatesChanged_revoker>(this, SelectedDatesChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->remove_SelectedDatesChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SetDisplayDate(Windows::Foundation::DateTime const& date) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->SetDisplayDate(impl::bind_in(date)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->SetYearDecadeDisplayDimensions(columns, rows));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::IsBlackout() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItem)->get_IsBlackout(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::IsBlackout(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItem)->put_IsBlackout(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::Date() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItem)->get_Date(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::SetDensityColors(param::iterable<Windows::UI::Color> const& colors) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItem)->SetDensityColors(*(void**)(&colors)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::InRecycleQueue() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->get_InRecycleQueue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::Item() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->get_Item(&value));
        return Windows::UI::Xaml::Controls::CalendarViewDayItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::Phase() const
    {
        uint32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->get_Phase(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::RegisterUpdateCallback(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& callback) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->RegisterUpdateCallback(*(void**)(&callback)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::RegisterUpdateCallback(uint32_t callbackPhase, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& callback) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->RegisterUpdateCallbackWithPhase(callbackPhase, *(void**)(&callback)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::CalendarViewDayItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemStatics<D>::IsBlackoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics)->get_IsBlackoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemStatics<D>::DateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics)->get_DateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::CalendarView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewSelectedDatesChangedEventArgs<D>::AddedDates() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs)->get_AddedDates(&value));
        return Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewSelectedDatesChangedEventArgs<D>::RemovedDates() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs)->get_RemovedDates(&value));
        return Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarIdentifierProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarIdentifierProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayOfWeekFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayOfWeekFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsGroupLabelVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_IsGroupLabelVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DisplayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DisplayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstDayOfWeekProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstDayOfWeekProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsOutOfScopeEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_IsOutOfScopeEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsTodayHighlightedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_IsTodayHighlightedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MaxDateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MaxDateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MinDateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MinDateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::NumberOfWeeksInViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_NumberOfWeeksInViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedDatesProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedDatesProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectionModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TemplateSettingsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_TemplateSettingsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FocusBorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FocusBorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedHoverBorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedHoverBorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedPressedBorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedPressedBorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedBorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedBorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HoverBorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_HoverBorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::PressedBorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_PressedBorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarItemBorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::OutOfScopeBackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_OutOfScopeBackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarItemBackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::PressedForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_PressedForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TodayForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_TodayForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::BlackoutForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_BlackoutForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::OutOfScopeForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_OutOfScopeForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarItemForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayItemFontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayItemFontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayItemFontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayItemFontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TodayFontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_TodayFontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfMonthLabelFontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfMonthLabelFontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfMonthLabelFontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfMonthLabelFontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MonthYearItemFontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MonthYearItemFontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MonthYearItemFontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MonthYearItemFontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfYearDecadeLabelFontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfYearDecadeLabelFontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfYearDecadeLabelFontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfYearDecadeLabelFontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HorizontalDayItemAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_HorizontalDayItemAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::VerticalDayItemAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_VerticalDayItemAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HorizontalFirstOfMonthLabelAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_HorizontalFirstOfMonthLabelAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::VerticalFirstOfMonthLabelAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_VerticalFirstOfMonthLabelAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBorderThicknessProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarItemBorderThicknessProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarViewDayItemStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarViewDayItemStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICandidateWindowBoundsChangedEventArgs<D>::Bounds() const
    {
        Windows::Foundation::Rect value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs)->get_Bounds(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Canvas{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::LeftProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->get_LeftProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetLeft(Windows::UI::Xaml::UIElement const& element) const
    {
        double result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetLeft(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetLeft(Windows::UI::Xaml::UIElement const& element, double length) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->SetLeft(*(void**)(&element), length));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::TopProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->get_TopProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetTop(Windows::UI::Xaml::UIElement const& element) const
    {
        double result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetTop(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetTop(Windows::UI::Xaml::UIElement const& element, double length) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->SetTop(*(void**)(&element), length));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::ZIndexProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->get_ZIndexProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetZIndex(Windows::UI::Xaml::UIElement const& element) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetZIndex(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetZIndex(Windows::UI::Xaml::UIElement const& element, int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->SetZIndex(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Source() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICaptureElement)->get_Source(&value));
        return Windows::Media::Capture::MediaCapture{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Source(Windows::Media::Capture::MediaCapture const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICaptureElement)->put_Source(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Stretch() const
    {
        Windows::UI::Xaml::Media::Stretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICaptureElement)->get_Stretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICaptureElement)->put_Stretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElementStatics<D>::SourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICaptureElementStatics)->get_SourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElementStatics<D>::StretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICaptureElementStatics)->get_StretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICheckBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICheckBoxFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::CheckBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupHeaderContainer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs)->get_GroupHeaderContainer(&value));
        return Windows::UI::Xaml::Controls::ListViewBaseHeaderItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupHeaderContainer(Windows::UI::Xaml::Controls::ListViewBaseHeaderItem const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs)->put_GroupHeaderContainer(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs)->get_GroupIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::Group() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs)->get_Group(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->get_ItemIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::Item() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->get_Item(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemContainer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->get_ItemContainer(&value));
        return Windows::UI::Xaml::Controls::Primitives::SelectorItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemContainer(Windows::UI::Xaml::Controls::Primitives::SelectorItem const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->put_ItemContainer(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::IsContainerPrepared() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->get_IsContainerPrepared(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::IsContainerPrepared(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->put_IsContainerPrepared(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Value() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs)->get_Value(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::UIElement() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs)->get_UIElement(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorChangedEventArgs<D>::OldColor() const
    {
        Windows::UI::Color value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorChangedEventArgs)->get_OldColor(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorChangedEventArgs<D>::NewColor() const
    {
        Windows::UI::Color value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorChangedEventArgs)->get_NewColor(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::Color() const
    {
        Windows::UI::Color value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_Color(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::Color(Windows::UI::Color const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_Color(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::PreviousColor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_PreviousColor(&value));
        return Windows::Foundation::IReference<Windows::UI::Color>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::PreviousColor(Windows::Foundation::IReference<Windows::UI::Color> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_PreviousColor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsAlphaEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSpectrumVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorSpectrumVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSpectrumVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsColorSpectrumVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorPreviewVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorPreviewVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorPreviewVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsColorPreviewVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSliderVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorSliderVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSliderVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsColorSliderVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaSliderVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaSliderVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaSliderVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsAlphaSliderVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsMoreButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsMoreButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsMoreButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsMoreButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorChannelTextInputVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorChannelTextInputVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorChannelTextInputVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsColorChannelTextInputVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaTextInputVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaTextInputVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaTextInputVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsAlphaTextInputVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsHexInputVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsHexInputVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsHexInputVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsHexInputVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinHue() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinHue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinHue(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MinHue(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxHue() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxHue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxHue(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MaxHue(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinSaturation() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinSaturation(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinSaturation(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MinSaturation(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxSaturation() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxSaturation(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxSaturation(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MaxSaturation(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinValue() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinValue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinValue(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MinValue(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxValue() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxValue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxValue(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MaxValue(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumShape() const
    {
        Windows::UI::Xaml::Controls::ColorSpectrumShape value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_ColorSpectrumShape(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumShape(Windows::UI::Xaml::Controls::ColorSpectrumShape const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_ColorSpectrumShape(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumComponents() const
    {
        Windows::UI::Xaml::Controls::ColorSpectrumComponents value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_ColorSpectrumComponents(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumComponents(Windows::UI::Xaml::Controls::ColorSpectrumComponents const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_ColorSpectrumComponents(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ColorPicker, Windows::UI::Xaml::Controls::ColorChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->add_ColorChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged_revoker consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ColorPicker, Windows::UI::Xaml::Controls::ColorChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ColorChanged_revoker>(this, ColorChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->remove_ColorChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ColorPicker{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_ColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::PreviousColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_PreviousColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsAlphaEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorSpectrumVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsColorSpectrumVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorPreviewVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsColorPreviewVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorSliderVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsColorSliderVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaSliderVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsAlphaSliderVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsMoreButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsMoreButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorChannelTextInputVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsColorChannelTextInputVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaTextInputVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsAlphaTextInputVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsHexInputVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsHexInputVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinHueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MinHueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxHueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MaxHueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinSaturationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MinSaturationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxSaturationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MaxSaturationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinValueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MinValueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxValueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MaxValueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorSpectrumShapeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_ColorSpectrumShapeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorSpectrumComponentsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_ColorSpectrumComponentsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::Width() const
    {
        Windows::UI::Xaml::GridLength value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->get_Width(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::Width(Windows::UI::Xaml::GridLength const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->put_Width(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MaxWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->get_MaxWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MaxWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->put_MaxWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MinWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->get_MinWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MinWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->put_MinWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::ActualWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->get_ActualWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::WidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinitionStatics)->get_WidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::MaxWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinitionStatics)->get_MaxWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::MinWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IColumnDefinitionStatics)->get_MinWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsDropDownOpen() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_IsDropDownOpen(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsDropDownOpen(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->put_IsDropDownOpen(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsEditable() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_IsEditable(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsSelectionBoxHighlighted() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_IsSelectionBoxHighlighted(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::MaxDropDownHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_MaxDropDownHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::MaxDropDownHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->put_MaxDropDownHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::SelectionBoxItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_SelectionBoxItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::SelectionBoxItemTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_SelectionBoxItemTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->add_DropDownClosed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed_revoker consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, DropDownClosed_revoker>(this, DropDownClosed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->remove_DropDownClosed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->add_DropDownOpened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened_revoker consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, DropDownOpened_revoker>(this, DropDownOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox)->remove_DropDownOpened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::PlaceholderText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->get_PlaceholderText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::PlaceholderText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->put_PlaceholderText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox3<D>::LightDismissOverlayMode() const
    {
        Windows::UI::Xaml::Controls::LightDismissOverlayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox3)->get_LightDismissOverlayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox3<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox3)->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox3<D>::IsTextSearchEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox3)->get_IsTextSearchEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox3<D>::IsTextSearchEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox3)->put_IsTextSearchEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox4<D>::SelectionChangedTrigger() const
    {
        Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox4)->get_SelectionChangedTrigger(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox4<D>::SelectionChangedTrigger(Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox4)->put_SelectionChangedTrigger(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox5<D>::PlaceholderForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox5)->get_PlaceholderForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox5<D>::PlaceholderForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox5)->put_PlaceholderForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::IsEditable(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->put_IsEditable(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Text() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->get_Text(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Text(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->put_Text(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextBoxStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->get_TextBoxStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextBoxStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->put_TextBoxStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Description() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->get_Description(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Description(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->put_Description(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextSubmitted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ComboBox, Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->add_TextSubmitted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextSubmitted_revoker consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextSubmitted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ComboBox, Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextSubmitted_revoker>(this, TextSubmitted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextSubmitted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->remove_TextSubmitted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ComboBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ComboBoxItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxOverrides<D>::OnDropDownClosed(Windows::Foundation::IInspectable const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxOverrides)->OnDropDownClosed(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxOverrides<D>::OnDropDownOpened(Windows::Foundation::IInspectable const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxOverrides)->OnDropDownOpened(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics<D>::IsDropDownOpenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics)->get_IsDropDownOpenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics<D>::MaxDropDownHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics)->get_MaxDropDownHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics2)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics2)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::PlaceholderTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics2)->get_PlaceholderTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics3<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics3)->get_LightDismissOverlayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics3<D>::IsTextSearchEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics3)->get_IsTextSearchEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics4<D>::SelectionChangedTriggerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics4)->get_SelectionChangedTriggerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics5<D>::PlaceholderForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics5)->get_PlaceholderForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::IsEditableProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics6)->get_IsEditableProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::TextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics6)->get_TextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::TextBoxStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics6)->get_TextBoxStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::DescriptionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics6)->get_DescriptionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Text() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs)->get_Text(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar<D>::PrimaryCommands() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar)->get_PrimaryCommands(&value));
        return Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar<D>::SecondaryCommands() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar)->get_SecondaryCommands(&value));
        return Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarOverflowPresenterStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar2)->get_CommandBarOverflowPresenterStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarOverflowPresenterStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar2)->put_CommandBarOverflowPresenterStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarTemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar2)->get_CommandBarTemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DefaultLabelPosition() const
    {
        Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->get_DefaultLabelPosition(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DefaultLabelPosition(Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->put_DefaultLabelPosition(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::OverflowButtonVisibility() const
    {
        Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->get_OverflowButtonVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::OverflowButtonVisibility(Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->put_OverflowButtonVisibility(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::IsDynamicOverflowEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->get_IsDynamicOverflowEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::IsDynamicOverflowEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->put_IsDynamicOverflowEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CommandBar, Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->add_DynamicOverflowItemsChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging_revoker consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CommandBar, Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DynamicOverflowItemsChanging_revoker>(this, DynamicOverflowItemsChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->remove_DynamicOverflowItemsChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement<D>::IsCompact() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement)->get_IsCompact(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement<D>::IsCompact(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement)->put_IsCompact(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::IsInOverflow() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement2)->get_IsInOverflow(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::DynamicOverflowOrder() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement2)->get_DynamicOverflowOrder(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::DynamicOverflowOrder(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement2)->put_DynamicOverflowOrder(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::CommandBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarFlyout<D>::PrimaryCommands() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarFlyout)->get_PrimaryCommands(&value));
        return Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarFlyout<D>::SecondaryCommands() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarFlyout)->get_SecondaryCommands(&value));
        return Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::CommandBarFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarOverflowPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::CommandBarOverflowPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics<D>::PrimaryCommandsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics)->get_PrimaryCommandsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics<D>::SecondaryCommandsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics)->get_SecondaryCommandsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics2<D>::CommandBarOverflowPresenterStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics2)->get_CommandBarOverflowPresenterStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::DefaultLabelPositionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics3)->get_DefaultLabelPositionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::OverflowButtonVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics3)->get_OverflowButtonVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::IsDynamicOverflowEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics3)->get_IsDynamicOverflowEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::ItemContainer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_ItemContainer(&value));
        return Windows::UI::Xaml::Controls::Primitives::SelectorItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::InRecycleQueue() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_InRecycleQueue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::ItemIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_ItemIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Item() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_Item(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Phase() const
    {
        uint32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_Phase(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::RegisterUpdateCallback(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& callback) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->RegisterUpdateCallback(*(void**)(&callback)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::RegisterUpdateCallback(uint32_t callbackPhase, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& callback) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->RegisterUpdateCallbackWithPhase(callbackPhase, *(void**)(&callback)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::Content() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl)->get_Content(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::Content(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl)->put_Content(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl)->get_ContentTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl)->put_ContentTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplateSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl)->get_ContentTemplateSelector(&value));
        return Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl)->put_ContentTemplateSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl)->get_ContentTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl)->put_ContentTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl2<D>::ContentTemplateRoot() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControl2)->get_ContentTemplateRoot(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControlFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ContentControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlOverrides<D>::OnContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControlOverrides)->OnContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlOverrides<D>::OnContentTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldContentTemplate, Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControlOverrides)->OnContentTemplateChanged(*(void**)(&oldContentTemplate), *(void**)(&newContentTemplate)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlOverrides<D>::OnContentTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControlOverrides)->OnContentTemplateSelectorChanged(*(void**)(&oldContentTemplateSelector), *(void**)(&newContentTemplateSelector)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControlStatics)->get_ContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControlStatics)->get_ContentTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTemplateSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControlStatics)->get_ContentTemplateSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentControlStatics)->get_ContentTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Title() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_Title(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Title(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_Title(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::TitleTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_TitleTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::TitleTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_TitleTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::FullSizeDesired() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_FullSizeDesired(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::FullSizeDesired(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_FullSizeDesired(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_PrimaryButtonText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_PrimaryButtonText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_SecondaryButtonText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_SecondaryButtonText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommand() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_PrimaryButtonCommand(&value));
        return Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommand(Windows::UI::Xaml::Input::ICommand const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_PrimaryButtonCommand(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommand() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_SecondaryButtonCommand(&value));
        return Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommand(Windows::UI::Xaml::Input::ICommand const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_SecondaryButtonCommand(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommandParameter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_PrimaryButtonCommandParameter(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommandParameter(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_PrimaryButtonCommandParameter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommandParameter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_SecondaryButtonCommandParameter(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommandParameter(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_SecondaryButtonCommandParameter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsPrimaryButtonEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_IsPrimaryButtonEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsPrimaryButtonEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_IsPrimaryButtonEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsSecondaryButtonEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_IsSecondaryButtonEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsSecondaryButtonEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_IsSecondaryButtonEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Closing(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing_revoker consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Closing_revoker>(this, Closing(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Closing(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Closed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed_revoker consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Closed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Opened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened_revoker consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Opened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_PrimaryButtonClick(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick_revoker consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PrimaryButtonClick_revoker>(this, PrimaryButtonClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_PrimaryButtonClick(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_SecondaryButtonClick(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick_revoker consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SecondaryButtonClick_revoker>(this, SecondaryButtonClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_SecondaryButtonClick(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Hide() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->Hide());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::ShowAsync() const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->ShowAsync(&operation));
        return Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_CloseButtonText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_CloseButtonText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommand() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_CloseButtonCommand(&value));
        return Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommand(Windows::UI::Xaml::Input::ICommand const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_CloseButtonCommand(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommandParameter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_CloseButtonCommandParameter(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommandParameter(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_CloseButtonCommandParameter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::PrimaryButtonStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_PrimaryButtonStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::PrimaryButtonStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_PrimaryButtonStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::SecondaryButtonStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_SecondaryButtonStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::SecondaryButtonStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_SecondaryButtonStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_CloseButtonStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_CloseButtonStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::DefaultButton() const
    {
        Windows::UI::Xaml::Controls::ContentDialogButton value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_DefaultButton(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::DefaultButton(Windows::UI::Xaml::Controls::ContentDialogButton const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_DefaultButton(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->add_CloseButtonClick(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick_revoker consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CloseButtonClick_revoker>(this, CloseButtonClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->remove_CloseButtonClick(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog3<D>::ShowAsync(Windows::UI::Xaml::Controls::ContentDialogPlacement const& placement) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialog3)->ShowAsyncWithPlacement(static_cast<int32_t>(placement), &operation));
        return Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickDeferral<D>::Complete() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral)->Complete());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::GetDeferral() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs)->GetDeferral(&result));
        return Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosedEventArgs<D>::Result() const
    {
        Windows::UI::Xaml::Controls::ContentDialogResult value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs)->get_Result(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingDeferral<D>::Complete() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingDeferral)->Complete());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Result() const
    {
        Windows::UI::Xaml::Controls::ContentDialogResult value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->get_Result(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::GetDeferral() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->GetDeferral(&result));
        return Windows::UI::Xaml::Controls::ContentDialogClosingDeferral{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ContentDialog{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::TitleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_TitleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::TitleTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_TitleTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::FullSizeDesiredProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_FullSizeDesiredProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_PrimaryButtonTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_SecondaryButtonTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonCommandProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_PrimaryButtonCommandProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonCommandProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_SecondaryButtonCommandProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonCommandParameterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_PrimaryButtonCommandParameterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonCommandParameterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_SecondaryButtonCommandParameterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::IsPrimaryButtonEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_IsPrimaryButtonEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::IsSecondaryButtonEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_IsSecondaryButtonEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_CloseButtonTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonCommandProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_CloseButtonCommandProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonCommandParameterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_CloseButtonCommandParameterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::PrimaryButtonStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_PrimaryButtonStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::SecondaryButtonStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_SecondaryButtonStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_CloseButtonStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::DefaultButtonProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_DefaultButtonProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::ChangeKind() const
    {
        Windows::UI::Xaml::Controls::ContentLinkChangeKind value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs)->get_ChangeKind(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::ContentLinkInfo() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs)->get_ContentLinkInfo(&value));
        return Windows::UI::Text::ContentLinkInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::TextRange() const
    {
        Windows::UI::Xaml::Documents::TextRange value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs)->get_TextRange(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Content() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_Content(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Content(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_Content(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_ContentTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_ContentTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplateSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_ContentTemplateSelector(&value));
        return Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_ContentTemplateSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_ContentTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_ContentTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStretch() const
    {
        Windows::UI::Text::FontStretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontStretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStretch(Windows::UI::Text::FontStretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontStretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::CharacterSpacing() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_CharacterSpacing(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::CharacterSpacing(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_CharacterSpacing(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Foreground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_Foreground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_Foreground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::OpticalMarginAlignment() const
    {
        Windows::UI::Xaml::OpticalMarginAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter2)->get_OpticalMarginAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter2)->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::TextLineBounds() const
    {
        Windows::UI::Xaml::TextLineBounds value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter2)->get_TextLineBounds(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::TextLineBounds(Windows::UI::Xaml::TextLineBounds const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter2)->put_TextLineBounds(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter3<D>::IsTextScaleFactorEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter3)->get_IsTextScaleFactorEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter3<D>::IsTextScaleFactorEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter3)->put_IsTextScaleFactorEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::TextWrapping() const
    {
        Windows::UI::Xaml::TextWrapping value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_TextWrapping(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_TextWrapping(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::MaxLines() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_MaxLines(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::MaxLines(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_MaxLines(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineStackingStrategy() const
    {
        Windows::UI::Xaml::LineStackingStrategy value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_LineStackingStrategy(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_LineStackingStrategy(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_LineHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_LineHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_BorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_BorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderThickness() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_BorderThickness(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_BorderThickness(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::CornerRadius() const
    {
        Windows::UI::Xaml::CornerRadius value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_CornerRadius(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_CornerRadius(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Background() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_Background(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_Background(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::HorizontalContentAlignment() const
    {
        Windows::UI::Xaml::HorizontalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_HorizontalContentAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_HorizontalContentAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::VerticalContentAlignment() const
    {
        Windows::UI::Xaml::VerticalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_VerticalContentAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_VerticalContentAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundTransition() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter5)->get_BackgroundTransition(&value));
        return Windows::UI::Xaml::BrushTransition{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundTransition(Windows::UI::Xaml::BrushTransition const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter5)->put_BackgroundTransition(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundSizing() const
    {
        Windows::UI::Xaml::Controls::BackgroundSizing value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter5)->get_BackgroundSizing(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenter5)->put_BackgroundSizing(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ContentPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterOverrides<D>::OnContentTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldContentTemplate, Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterOverrides)->OnContentTemplateChanged(*(void**)(&oldContentTemplate), *(void**)(&newContentTemplate)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterOverrides<D>::OnContentTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterOverrides)->OnContentTemplateSelectorChanged(*(void**)(&oldContentTemplateSelector), *(void**)(&newContentTemplateSelector)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ContentTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTemplateSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ContentTemplateSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ContentTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontStretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontStretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::CharacterSpacingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_CharacterSpacingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics2<D>::OpticalMarginAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics2)->get_OpticalMarginAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics2<D>::TextLineBoundsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics2)->get_TextLineBoundsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics3<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics3)->get_IsTextScaleFactorEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::TextWrappingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_TextWrappingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::MaxLinesProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_MaxLinesProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::LineStackingStrategyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_LineStackingStrategyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::LineHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_LineHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_BorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BorderThicknessProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_BorderThicknessProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::CornerRadiusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_CornerRadiusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_BackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::HorizontalContentAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_HorizontalContentAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::VerticalContentAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_VerticalContentAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics5<D>::BackgroundSizingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics5)->get_BackgroundSizingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContextMenuEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContextMenuEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::CursorLeft() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContextMenuEventArgs)->get_CursorLeft(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::CursorTop() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IContextMenuEventArgs)->get_CursorTop(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontStretch() const
    {
        Windows::UI::Text::FontStretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontStretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontStretch(Windows::UI::Text::FontStretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontStretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::CharacterSpacing() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_CharacterSpacing(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::CharacterSpacing(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_CharacterSpacing(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Foreground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_Foreground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_Foreground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsTabStop() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_IsTabStop(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsTabStop(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_IsTabStop(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_IsEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_IsEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::TabIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_TabIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::TabIndex(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_TabIndex(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::TabNavigation() const
    {
        Windows::UI::Xaml::Input::KeyboardNavigationMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_TabNavigation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::TabNavigation(Windows::UI::Xaml::Input::KeyboardNavigationMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_TabNavigation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Template() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_Template(&value));
        return Windows::UI::Xaml::Controls::ControlTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Template(Windows::UI::Xaml::Controls::ControlTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_Template(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::HorizontalContentAlignment() const
    {
        Windows::UI::Xaml::HorizontalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_HorizontalContentAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_HorizontalContentAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::VerticalContentAlignment() const
    {
        Windows::UI::Xaml::VerticalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_VerticalContentAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_VerticalContentAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Background() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_Background(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_Background(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::BorderThickness() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_BorderThickness(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_BorderThickness(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::BorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_BorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->put_BorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FocusState() const
    {
        Windows::UI::Xaml::FocusState value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FocusState(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(Windows::UI::Xaml::DependencyPropertyChangedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->add_IsEnabledChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged_revoker consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(auto_revoke_t, Windows::UI::Xaml::DependencyPropertyChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, IsEnabledChanged_revoker>(this, IsEnabledChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->remove_IsEnabledChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::ApplyTemplate() const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->ApplyTemplate(&result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl)->Focus(static_cast<int32_t>(value), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl2<D>::IsTextScaleFactorEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl2)->get_IsTextScaleFactorEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl2<D>::IsTextScaleFactorEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl2)->put_IsTextScaleFactorEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl3<D>::UseSystemFocusVisuals() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl3)->get_UseSystemFocusVisuals(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl3<D>::UseSystemFocusVisuals(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl3)->put_UseSystemFocusVisuals(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngagementEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_IsFocusEngagementEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngagementEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_IsFocusEngagementEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngaged() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_IsFocusEngaged(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngaged(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_IsFocusEngaged(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::RequiresPointer() const
    {
        Windows::UI::Xaml::Controls::RequiresPointer value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_RequiresPointer(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::RequiresPointer(Windows::UI::Xaml::Controls::RequiresPointer const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_RequiresPointer(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusLeft() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_XYFocusLeft(&value));
        return Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusLeft(Windows::UI::Xaml::DependencyObject const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_XYFocusLeft(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusRight() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_XYFocusRight(&value));
        return Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusRight(Windows::UI::Xaml::DependencyObject const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_XYFocusRight(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusUp() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_XYFocusUp(&value));
        return Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusUp(Windows::UI::Xaml::DependencyObject const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_XYFocusUp(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusDown() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_XYFocusDown(&value));
        return Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusDown(Windows::UI::Xaml::DependencyObject const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_XYFocusDown(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::ElementSoundMode() const
    {
        Windows::UI::Xaml::ElementSoundMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_ElementSoundMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::ElementSoundMode(Windows::UI::Xaml::ElementSoundMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_ElementSoundMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->add_FocusEngaged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged_revoker consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FocusEngaged_revoker>(this, FocusEngaged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->remove_FocusEngaged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->add_FocusDisengaged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged_revoker consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FocusDisengaged_revoker>(this, FocusDisengaged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->remove_FocusDisengaged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::RemoveFocusEngagement() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl4)->RemoveFocusEngagement());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl5<D>::DefaultStyleResourceUri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl5)->get_DefaultStyleResourceUri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl5<D>::DefaultStyleResourceUri(Windows::Foundation::Uri const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl5)->put_DefaultStyleResourceUri(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl7<D>::BackgroundSizing() const
    {
        Windows::UI::Xaml::Controls::BackgroundSizing value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl7)->get_BackgroundSizing(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl7<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl7)->put_BackgroundSizing(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl7<D>::CornerRadius() const
    {
        Windows::UI::Xaml::CornerRadius value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl7)->get_CornerRadius(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl7<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControl7)->put_CornerRadius(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Control{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerEntered(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerEntered(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerPressed(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerMoved(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerMoved(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerReleased(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerExited(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerExited(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerCaptureLost(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerCaptureLost(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerCanceled(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerCanceled(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerWheelChanged(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerWheelChanged(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnTapped(Windows::UI::Xaml::Input::TappedRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnTapped(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDoubleTapped(Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDoubleTapped(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnHolding(Windows::UI::Xaml::Input::HoldingRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnHolding(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnRightTapped(Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnRightTapped(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationStarting(Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationStarting(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationInertiaStarting(Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationInertiaStarting(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationStarted(Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationStarted(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationDelta(Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationDelta(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationCompleted(Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationCompleted(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnKeyUp(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnKeyDown(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnGotFocus(Windows::UI::Xaml::RoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnGotFocus(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnLostFocus(Windows::UI::Xaml::RoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnLostFocus(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragEnter(Windows::UI::Xaml::DragEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDragEnter(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragLeave(Windows::UI::Xaml::DragEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDragLeave(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragOver(Windows::UI::Xaml::DragEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDragOver(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDrop(Windows::UI::Xaml::DragEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDrop(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnPreviewKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides6)->OnPreviewKeyDown(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnPreviewKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides6)->OnPreviewKeyUp(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnCharacterReceived(Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlOverrides6)->OnCharacterReceived(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlProtected<D>::DefaultStyleKey() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlProtected)->get_DefaultStyleKey(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlProtected<D>::DefaultStyleKey(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlProtected)->put_DefaultStyleKey(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlProtected<D>::GetTemplateChild(param::hstring const& childName) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlProtected)->GetTemplateChild(*(void**)(&childName), &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontStretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontStretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::CharacterSpacingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_CharacterSpacingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::ForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_ForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::IsTabStopProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_IsTabStopProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::IsEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_IsEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TabIndexProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_TabIndexProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TabNavigationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_TabNavigationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_TemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::HorizontalContentAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_HorizontalContentAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::VerticalContentAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_VerticalContentAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_BackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BorderThicknessProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_BorderThicknessProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_BorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::DefaultStyleKeyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_DefaultStyleKeyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FocusStateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FocusStateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics2<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics2)->get_IsTextScaleFactorEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::UseSystemFocusVisualsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->get_UseSystemFocusVisualsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::IsTemplateFocusTargetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->get_IsTemplateFocusTargetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::GetIsTemplateFocusTarget(Windows::UI::Xaml::FrameworkElement const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->GetIsTemplateFocusTarget(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::SetIsTemplateFocusTarget(Windows::UI::Xaml::FrameworkElement const& element, bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->SetIsTemplateFocusTarget(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::IsFocusEngagementEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_IsFocusEngagementEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::IsFocusEngagedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_IsFocusEngagedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::RequiresPointerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_RequiresPointerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusLeftProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_XYFocusLeftProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusRightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_XYFocusRightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusUpProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_XYFocusUpProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusDownProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_XYFocusDownProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::ElementSoundModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_ElementSoundModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::DefaultStyleResourceUriProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->get_DefaultStyleResourceUriProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::IsTemplateKeyTipTargetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->get_IsTemplateKeyTipTargetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::GetIsTemplateKeyTipTarget(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->GetIsTemplateKeyTipTarget(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::SetIsTemplateKeyTipTarget(Windows::UI::Xaml::DependencyObject const& element, bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->SetIsTemplateKeyTipTarget(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics7<D>::BackgroundSizingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics7)->get_BackgroundSizingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics7<D>::CornerRadiusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlStatics7)->get_CornerRadiusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlTemplate<D>::TargetType() const
    {
        Windows::UI::Xaml::Interop::TypeName value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlTemplate)->get_TargetType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlTemplate<D>::TargetType(Windows::UI::Xaml::Interop::TypeName const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IControlTemplate)->put_TargetType(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelector<D>::SelectTemplate(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelector)->SelectTemplate(*(void**)(&item), *(void**)(&container), &result));
        return Windows::UI::Xaml::DataTemplate{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelector2<D>::SelectTemplate(Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelector2)->SelectTemplateForItem(*(void**)(&item), &result));
        return Windows::UI::Xaml::DataTemplate{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorOverrides<D>::SelectTemplateCore(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides)->SelectTemplateCore(*(void**)(&item), *(void**)(&container), &result));
        return Windows::UI::Xaml::DataTemplate{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorOverrides2<D>::SelectTemplateCore(Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2)->SelectTemplateForItemCore(*(void**)(&item), &result));
        return Windows::UI::Xaml::DataTemplate{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickedEventArgs<D>::OldDate() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickedEventArgs)->get_OldDate(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickedEventArgs<D>::NewDate() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickedEventArgs)->get_NewDate(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::CalendarIdentifier() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_CalendarIdentifier(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::CalendarIdentifier(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_CalendarIdentifier(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Date() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_Date(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Date(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_Date(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_DayVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_DayVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_MonthVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_MonthVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_YearVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_YearVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_DayFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_DayFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_MonthFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_MonthFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_YearFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_YearFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MinYear() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_MinYear(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MinYear(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_MinYear(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MaxYear() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_MaxYear(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MaxYear(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_MaxYear(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->add_DateChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged_revoker consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(auto_revoke_t, Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DateChanged_revoker>(this, DateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->remove_DateChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker2<D>::LightDismissOverlayMode() const
    {
        Windows::UI::Xaml::Controls::LightDismissOverlayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker2)->get_LightDismissOverlayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker2<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker2)->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker3)->get_SelectedDate(&value));
        return Windows::Foundation::IReference<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDate(Windows::Foundation::IReference<Windows::Foundation::DateTime> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker3)->put_SelectedDate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDateChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePicker, Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker3)->add_SelectedDateChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDateChanged_revoker consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDateChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePicker, Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectedDateChanged_revoker>(this, SelectedDateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDateChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePicker3)->remove_SelectedDateChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::DatePicker{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::CalendarIdentifier() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_CalendarIdentifier(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::CalendarIdentifier(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_CalendarIdentifier(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::Date() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_Date(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::Date(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_Date(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DayVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_DayVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DayVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_DayVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MonthVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_MonthVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MonthVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_MonthVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::YearVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_YearVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::YearVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_YearVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MinYear() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_MinYear(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MinYear(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_MinYear(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MaxYear() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_MaxYear(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MaxYear(Windows::Foundation::DateTime const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_MaxYear(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePickerFlyout, Windows::UI::Xaml::Controls::DatePickedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->add_DatePicked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked_revoker consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePickerFlyout, Windows::UI::Xaml::Controls::DatePickedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DatePicked_revoker>(this, DatePicked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->remove_DatePicked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::ShowAtAsync(Windows::UI::Xaml::FrameworkElement const& target) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->ShowAtAsync(*(void**)(&target), &operation));
        return Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::DateTime>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::DayFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->get_DayFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::DayFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->put_DayFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::MonthFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->get_MonthFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::MonthFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->put_MonthFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::YearFormat() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->get_YearFormat(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::YearFormat(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->put_YearFormat(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::PrimaryText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItem)->get_PrimaryText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::PrimaryText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItem)->put_PrimaryText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::SecondaryText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItem)->get_SecondaryText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::SecondaryText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItem)->put_SecondaryText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItemStatics<D>::PrimaryTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics)->get_PrimaryTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItemStatics<D>::SecondaryTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics)->get_SecondaryTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutPresenter2<D>::IsDefaultShadowEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2)->get_IsDefaultShadowEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutPresenter2<D>::IsDefaultShadowEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2)->put_IsDefaultShadowEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutPresenterStatics2<D>::IsDefaultShadowEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2)->get_IsDefaultShadowEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::CalendarIdentifierProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_CalendarIdentifierProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::DateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_DateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::DayVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_DayVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MonthVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_MonthVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::YearVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_YearVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MinYearProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_MinYearProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MaxYearProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_MaxYearProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::DayFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2)->get_DayFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::MonthFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2)->get_MonthFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::YearFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2)->get_YearFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerSelectedValueChangedEventArgs<D>::OldDate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs)->get_OldDate(&value));
        return Windows::Foundation::IReference<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerSelectedValueChangedEventArgs<D>::NewDate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs)->get_NewDate(&value));
        return Windows::Foundation::IReference<Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::CalendarIdentifierProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_CalendarIdentifierProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_DateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DayVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_DayVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MonthVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_MonthVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::YearVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_YearVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DayFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_DayFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MonthFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_MonthFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::YearFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_YearFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MinYearProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_MinYearProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MaxYearProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_MaxYearProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics2<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics2)->get_LightDismissOverlayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics3<D>::SelectedDateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics3)->get_SelectedDateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerValueChangedEventArgs<D>::OldDate() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs)->get_OldDate(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerValueChangedEventArgs<D>::NewDate() const
    {
        Windows::Foundation::DateTime value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs)->get_NewDate(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsCompletedEventArgs<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs)->get_Items(&value));
        return Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsCompletedEventArgs<D>::DropResult() const
    {
        Windows::ApplicationModel::DataTransfer::DataPackageOperation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs)->get_DropResult(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs)->get_Items(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Data() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs)->get_Data(&value));
        return Windows::ApplicationModel::DataTransfer::DataPackage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDropDownButtonAutomationPeerFactory<D>::CreateInstance(Windows::UI::Xaml::Controls::DropDownButton const& owner, Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory)->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDropDownButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDropDownButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::DropDownButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDynamicOverflowItemsChangingEventArgs<D>::Action() const
    {
        Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs)->get_Action(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipView2<D>::UseTouchAnimationsForAllNavigation() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlipView2)->get_UseTouchAnimationsForAllNavigation(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipView2<D>::UseTouchAnimationsForAllNavigation(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlipView2)->put_UseTouchAnimationsForAllNavigation(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlipViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::FlipView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlipViewItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::FlipViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipViewStatics2<D>::UseTouchAnimationsForAllNavigationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlipViewStatics2)->get_UseTouchAnimationsForAllNavigationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyout<D>::Content() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyout)->get_Content(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyout<D>::Content(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyout)->put_Content(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyout<D>::FlyoutPresenterStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyout)->get_FlyoutPresenterStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyout<D>::FlyoutPresenterStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyout)->put_FlyoutPresenterStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyoutFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Flyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutPresenter2<D>::IsDefaultShadowEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyoutPresenter2)->get_IsDefaultShadowEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutPresenter2<D>::IsDefaultShadowEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyoutPresenter2)->put_IsDefaultShadowEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyoutPresenterFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::FlyoutPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutPresenterStatics2<D>::IsDefaultShadowEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2)->get_IsDefaultShadowEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutStatics<D>::ContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyoutStatics)->get_ContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutStatics<D>::FlyoutPresenterStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFlyoutStatics)->get_FlyoutPresenterStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFocusEngagedEventArgs2<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFocusEngagedEventArgs2<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::Glyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_Glyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::Glyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_Glyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_FontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_FontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_FontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_FontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_FontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_FontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_FontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_FontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon2<D>::IsTextScaleFactorEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon2)->get_IsTextScaleFactorEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon2<D>::IsTextScaleFactorEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon2)->put_IsTextScaleFactorEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon3<D>::MirroredWhenRightToLeft() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon3)->get_MirroredWhenRightToLeft(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon3<D>::MirroredWhenRightToLeft(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIcon3)->put_MirroredWhenRightToLeft(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::FontIcon{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::Glyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_Glyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::Glyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_Glyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_FontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_FontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_FontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_FontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_FontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_FontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_FontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_FontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::IsTextScaleFactorEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_IsTextScaleFactorEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::IsTextScaleFactorEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_IsTextScaleFactorEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::MirroredWhenRightToLeft() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_MirroredWhenRightToLeft(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::MirroredWhenRightToLeft(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_MirroredWhenRightToLeft(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::FontIconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::GlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_GlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_FontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_FontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_FontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_FontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_IsTextScaleFactorEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::MirroredWhenRightToLeftProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_MirroredWhenRightToLeftProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::GlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_GlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_FontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_FontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_FontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_FontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics2<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics2)->get_IsTextScaleFactorEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics3<D>::MirroredWhenRightToLeftProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics3)->get_MirroredWhenRightToLeftProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CacheSize() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_CacheSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CacheSize(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->put_CacheSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CanGoBack() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_CanGoBack(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CanGoForward() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_CanGoForward(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CurrentSourcePageType() const
    {
        Windows::UI::Xaml::Interop::TypeName value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_CurrentSourcePageType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::SourcePageType() const
    {
        Windows::UI::Xaml::Interop::TypeName value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_SourcePageType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::SourcePageType(Windows::UI::Xaml::Interop::TypeName const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->put_SourcePageType(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::BackStackDepth() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_BackStackDepth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(Windows::UI::Xaml::Navigation::NavigatedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_Navigated(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated_revoker consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(auto_revoke_t, Windows::UI::Xaml::Navigation::NavigatedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Navigated_revoker>(this, Navigated(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_Navigated(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_Navigating(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating_revoker consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(auto_revoke_t, Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Navigating_revoker>(this, Navigating(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_Navigating(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_NavigationFailed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed_revoker consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(auto_revoke_t, Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, NavigationFailed_revoker>(this, NavigationFailed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_NavigationFailed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_NavigationStopped(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped_revoker consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(auto_revoke_t, Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, NavigationStopped_revoker>(this, NavigationStopped(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_NavigationStopped(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::GoBack() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->GoBack());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::GoForward() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->GoForward());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigate(Windows::UI::Xaml::Interop::TypeName const& sourcePageType, Windows::Foundation::IInspectable const& parameter) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->Navigate(impl::bind_in(sourcePageType), *(void**)(&parameter), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::GetNavigationState() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->GetNavigationState(&result));
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::SetNavigationState(param::hstring const& navigationState) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame)->SetNavigationState(*(void**)(&navigationState)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame2<D>::BackStack() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame2)->get_BackStack(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame2<D>::ForwardStack() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame2)->get_ForwardStack(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame2<D>::Navigate(Windows::UI::Xaml::Interop::TypeName const& sourcePageType, Windows::Foundation::IInspectable const& parameter, Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const& infoOverride) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame2)->Navigate(impl::bind_in(sourcePageType), *(void**)(&parameter), *(void**)(&infoOverride), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame3<D>::GoBack(Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const& transitionInfoOverride) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame3)->GoBack(*(void**)(&transitionInfoOverride)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame4<D>::SetNavigationState(param::hstring const& navigationState, bool suppressNavigate) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame4)->SetNavigationStateWithNavigationControl(*(void**)(&navigationState), suppressNavigate));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame5<D>::IsNavigationStackEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame5)->get_IsNavigationStackEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame5<D>::IsNavigationStackEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame5)->put_IsNavigationStackEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame5<D>::NavigateToType(Windows::UI::Xaml::Interop::TypeName const& sourcePageType, Windows::Foundation::IInspectable const& parameter, Windows::UI::Xaml::Navigation::FrameNavigationOptions const& navigationOptions) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrame5)->NavigateToType(impl::bind_in(sourcePageType), *(void**)(&parameter), *(void**)(&navigationOptions), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Frame{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CacheSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_CacheSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CanGoBackProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_CanGoBackProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CanGoForwardProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_CanGoForwardProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CurrentSourcePageTypeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_CurrentSourcePageTypeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::SourcePageTypeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_SourcePageTypeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::BackStackDepthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_BackStackDepthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics2<D>::BackStackProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics2)->get_BackStackProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics2<D>::ForwardStackProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics2)->get_ForwardStackProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics5<D>::IsNavigationStackEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IFrameStatics5)->get_IsNavigationStackEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid<D>::RowDefinitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid)->get_RowDefinitions(&value));
        return Windows::UI::Xaml::Controls::RowDefinitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid<D>::ColumnDefinitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid)->get_ColumnDefinitions(&value));
        return Windows::UI::Xaml::Controls::ColumnDefinitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid2)->get_BorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid2)->put_BorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderThickness() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid2)->get_BorderThickness(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid2)->put_BorderThickness(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::CornerRadius() const
    {
        Windows::UI::Xaml::CornerRadius value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid2)->get_CornerRadius(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid2)->put_CornerRadius(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid2)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid2)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid3<D>::RowSpacing() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid3)->get_RowSpacing(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid3<D>::RowSpacing(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid3)->put_RowSpacing(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid3<D>::ColumnSpacing() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid3)->get_ColumnSpacing(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid3<D>::ColumnSpacing(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid3)->put_ColumnSpacing(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid4<D>::BackgroundSizing() const
    {
        Windows::UI::Xaml::Controls::BackgroundSizing value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid4)->get_BackgroundSizing(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid4<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGrid4)->put_BackgroundSizing(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Grid{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::RowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->get_RowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetRow(Windows::UI::Xaml::FrameworkElement const& element) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetRow(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetRow(Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->SetRow(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::ColumnProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->get_ColumnProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetColumn(Windows::UI::Xaml::FrameworkElement const& element) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetColumn(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetColumn(Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->SetColumn(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::RowSpanProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->get_RowSpanProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetRowSpan(Windows::UI::Xaml::FrameworkElement const& element) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetRowSpan(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetRowSpan(Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->SetRowSpan(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::ColumnSpanProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->get_ColumnSpanProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetColumnSpan(Windows::UI::Xaml::FrameworkElement const& element) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetColumnSpan(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetColumnSpan(Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->SetColumnSpan(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::BorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics2)->get_BorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::BorderThicknessProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics2)->get_BorderThicknessProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::CornerRadiusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics2)->get_CornerRadiusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics2)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics3<D>::RowSpacingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics3)->get_RowSpacingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics3<D>::ColumnSpacingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics3)->get_ColumnSpacingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics4<D>::BackgroundSizingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridStatics4)->get_BackgroundSizingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::GridView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridViewHeaderItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::GridViewHeaderItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridViewItem<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridViewItem)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGridViewItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::GridViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::GroupItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::Panel() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_Panel(&value));
        return Windows::UI::Xaml::Controls::ItemsPanelTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::Panel(Windows::UI::Xaml::Controls::ItemsPanelTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_Panel(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_ContainerStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_ContainerStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyleSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_ContainerStyleSelector(&value));
        return Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyleSelector(Windows::UI::Xaml::Controls::StyleSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_ContainerStyleSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplateSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_HeaderTemplateSelector(&value));
        return Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_HeaderTemplateSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HidesIfEmpty() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_HidesIfEmpty(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HidesIfEmpty(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_HidesIfEmpty(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle2<D>::HeaderContainerStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle2)->get_HeaderContainerStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle2<D>::HeaderContainerStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyle2)->put_HeaderContainerStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyleFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyleFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::GroupStyle{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyleSelector<D>::SelectGroupStyle(Windows::Foundation::IInspectable const& group, uint32_t level) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelector)->SelectGroupStyle(*(void**)(&group), level, &result));
        return Windows::UI::Xaml::Controls::GroupStyle{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyleSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::GroupStyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyleSelectorOverrides<D>::SelectGroupStyleCore(Windows::Foundation::IInspectable const& group, uint32_t level) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides)->SelectGroupStyleCore(*(void**)(&group), level, &result));
        return Windows::UI::Xaml::Controls::GroupStyle{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementTarget() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->get_PlacementTarget(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementTarget(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->put_PlacementTarget(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementAlignment() const
    {
        Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->get_PlacementAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementAlignment(Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->put_PlacementAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::IsOpen() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->get_IsOpen(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::AreCandidatesEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->get_AreCandidatesEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::AreCandidatesEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->put_AreCandidatesEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->add_Opened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened_revoker consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->remove_Opened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->add_Closed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed_revoker consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->remove_Closed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::TryClose() const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->TryClose(&result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::TryOpen() const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->TryOpen(&result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::HandwritingView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::PlacementTargetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewStatics)->get_PlacementTargetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::PlacementAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewStatics)->get_PlacementAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::IsOpenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewStatics)->get_IsOpenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::AreCandidatesEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewStatics)->get_AreCandidatesEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::DefaultSectionIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->get_DefaultSectionIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::DefaultSectionIndex(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->put_DefaultSectionIndex(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Sections() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->get_Sections(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInView() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->get_SectionsInView(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaders() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->get_SectionHeaders(&value));
        return Windows::Foundation::Collections::IObservableVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->add_SectionHeaderClick(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick_revoker consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(auto_revoke_t, Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SectionHeaderClick_revoker>(this, SectionHeaderClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->remove_SectionHeaderClick(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->add_SectionsInViewChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged_revoker consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(auto_revoke_t, Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SectionsInViewChanged_revoker>(this, SectionsInViewChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->remove_SectionsInViewChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::ScrollToSection(Windows::UI::Xaml::Controls::HubSection const& section) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHub)->ScrollToSection(*(void**)(&section)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Hub{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSection)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSection)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSection)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSection)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::ContentTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSection)->get_ContentTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::ContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSection)->put_ContentTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::IsHeaderInteractive() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSection)->get_IsHeaderInteractive(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::IsHeaderInteractive(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSection)->put_IsHeaderInteractive(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSectionFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::HubSection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionHeaderClickEventArgs<D>::Section() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs)->get_Section(&value));
        return Windows::UI::Xaml::Controls::HubSection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSectionStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSectionStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::ContentTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSectionStatics)->get_ContentTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::IsHeaderInteractiveProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubSectionStatics)->get_IsHeaderInteractiveProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::DefaultSectionIndexProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_DefaultSectionIndexProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::SemanticZoomOwnerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_SemanticZoomOwnerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::IsActiveViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_IsActiveViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::IsZoomedInViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_IsZoomedInViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHyperlinkButton<D>::NavigateUri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButton)->get_NavigateUri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHyperlinkButton<D>::NavigateUri(Windows::Foundation::Uri const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButton)->put_NavigateUri(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHyperlinkButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::HyperlinkButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHyperlinkButtonStatics<D>::NavigateUriProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButtonStatics)->get_NavigateUriProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconElement<D>::Foreground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconElement)->get_Foreground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconElement<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconElement)->put_Foreground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconElementStatics<D>::ForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconElementStatics)->get_ForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSource<D>::Foreground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconSource)->get_Foreground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSource<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconSource)->put_Foreground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceElement<D>::IconSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconSourceElement)->get_IconSource(&value));
        return Windows::UI::Xaml::Controls::IconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceElement<D>::IconSource(Windows::UI::Xaml::Controls::IconSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconSourceElement)->put_IconSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceElementFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconSourceElementFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::IconSourceElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceElementStatics<D>::IconSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconSourceElementStatics)->get_IconSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceStatics<D>::ForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IIconSourceStatics)->get_ForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::Source() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->get_Source(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::Source(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->put_Source(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::Stretch() const
    {
        Windows::UI::Xaml::Media::Stretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->get_Stretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->put_Stretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::NineGrid() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->get_NineGrid(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::NineGrid(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->put_NineGrid(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::PlayToSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->get_PlayToSource(&value));
        return Windows::Media::PlayTo::PlayToSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->add_ImageFailed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed_revoker consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(auto_revoke_t, Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ImageFailed_revoker>(this, ImageFailed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->remove_ImageFailed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->add_ImageOpened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened_revoker consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ImageOpened_revoker>(this, ImageOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage)->remove_ImageOpened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage2<D>::GetAsCastingSource() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage2)->GetAsCastingSource(&result));
        return Windows::Media::Casting::CastingSource{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage3<D>::GetAlphaMask() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImage3)->GetAlphaMask(&result));
        return Windows::UI::Composition::CompositionBrush{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImageStatics<D>::SourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImageStatics)->get_SourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImageStatics<D>::StretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImageStatics)->get_StretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImageStatics<D>::NineGridProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImageStatics)->get_NineGridProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImageStatics<D>::PlayToSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IImageStatics)->get_PlayToSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkCanvas<D>::InkPresenter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkCanvas)->get_InkPresenter(&value));
        return Windows::UI::Input::Inking::InkPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkCanvasFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkCanvasFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkCanvas{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InitialControls() const
    {
        Windows::UI::Xaml::Controls::InkToolbarInitialControls value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_InitialControls(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InitialControls(Windows::UI::Xaml::Controls::InkToolbarInitialControls const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->put_InitialControls(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::Children() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_Children(&value));
        return Windows::UI::Xaml::DependencyObjectCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveTool() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_ActiveTool(&value));
        return Windows::UI::Xaml::Controls::InkToolbarToolButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveTool(Windows::UI::Xaml::Controls::InkToolbarToolButton const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->put_ActiveTool(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributes() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_InkDrawingAttributes(&value));
        return Windows::UI::Input::Inking::InkDrawingAttributes{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonChecked() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_IsRulerButtonChecked(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonChecked(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->put_IsRulerButtonChecked(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::TargetInkCanvas() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_TargetInkCanvas(&value));
        return Windows::UI::Xaml::Controls::InkCanvas{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::TargetInkCanvas(Windows::UI::Xaml::Controls::InkCanvas const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->put_TargetInkCanvas(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_ActiveToolChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged_revoker consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, ActiveToolChanged_revoker>(this, ActiveToolChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_ActiveToolChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_InkDrawingAttributesChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged_revoker consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, InkDrawingAttributesChanged_revoker>(this, InkDrawingAttributesChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_InkDrawingAttributesChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_EraseAllClicked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked_revoker consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, EraseAllClicked_revoker>(this, EraseAllClicked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_EraseAllClicked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_IsRulerButtonCheckedChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged_revoker consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, IsRulerButtonCheckedChanged_revoker>(this, IsRulerButtonCheckedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_IsRulerButtonCheckedChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::GetToolButton(Windows::UI::Xaml::Controls::InkToolbarTool const& tool) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->GetToolButton(static_cast<int32_t>(tool), &result));
        return Windows::UI::Xaml::Controls::InkToolbarToolButton{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::GetToggleButton(Windows::UI::Xaml::Controls::InkToolbarToggle const& tool) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->GetToggleButton(static_cast<int32_t>(tool), &result));
        return Windows::UI::Xaml::Controls::InkToolbarToggleButton{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonChecked() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->get_IsStencilButtonChecked(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonChecked(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->put_IsStencilButtonChecked(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::ButtonFlyoutPlacement() const
    {
        Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->get_ButtonFlyoutPlacement(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::ButtonFlyoutPlacement(Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->put_ButtonFlyoutPlacement(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->add_IsStencilButtonCheckedChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged_revoker consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsStencilButtonCheckedChanged_revoker>(this, IsStencilButtonCheckedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->remove_IsStencilButtonCheckedChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::GetMenuButton(Windows::UI::Xaml::Controls::InkToolbarMenuKind const& menu) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->GetMenuButton(static_cast<int32_t>(menu), &result));
        return Windows::UI::Xaml::Controls::InkToolbarMenuButton{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar3<D>::TargetInkPresenter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar3)->get_TargetInkPresenter(&value));
        return Windows::UI::Input::Inking::InkPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar3<D>::TargetInkPresenter(Windows::UI::Input::Inking::InkPresenter const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbar3)->put_TargetInkPresenter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarBallpointPenButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPen<D>::CreateInkDrawingAttributes(Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPen)->CreateInkDrawingAttributes(*(void**)(&brush), strokeWidth, &result));
        return Windows::UI::Input::Inking::InkDrawingAttributes{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::CustomPen() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton)->get_CustomPen(&value));
        return Windows::UI::Xaml::Controls::InkToolbarCustomPen{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::CustomPen(Windows::UI::Xaml::Controls::InkToolbarCustomPen const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton)->put_CustomPen(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::ConfigurationContent() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton)->get_ConfigurationContent(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::ConfigurationContent(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton)->put_ConfigurationContent(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarCustomPenButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonStatics<D>::CustomPenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics)->get_CustomPenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonStatics<D>::ConfigurationContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics)->get_ConfigurationContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarCustomPen{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenOverrides<D>::CreateInkDrawingAttributesCore(Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides)->CreateInkDrawingAttributesCore(*(void**)(&brush), strokeWidth, &result));
        return Windows::UI::Input::Inking::InkDrawingAttributes{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToggleButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButton<D>::ConfigurationContent() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton)->get_ConfigurationContent(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButton<D>::ConfigurationContent(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton)->put_ConfigurationContent(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarCustomToolButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButtonStatics<D>::ConfigurationContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics)->get_ConfigurationContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButton2<D>::IsClearAllVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButton2)->get_IsClearAllVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButton2<D>::IsClearAllVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButton2)->put_IsClearAllVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarEraserButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButtonStatics2<D>::IsClearAllVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2)->get_IsClearAllVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Kind() const
    {
        Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->get_Kind(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Kind(Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->put_Kind(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::IsChecked() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->get_IsChecked(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::IsChecked(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->put_IsChecked(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->add_Checked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked_revoker consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Checked_revoker>(this, Checked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->remove_Checked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->add_Unchecked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked_revoker consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Unchecked_revoker>(this, Unchecked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->remove_Unchecked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarFlyoutItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemStatics<D>::KindProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics)->get_KindProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemStatics<D>::IsCheckedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics)->get_IsCheckedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarHighlighterButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarHighlighterButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarIsStencilButtonCheckedChangedEventArgs<D>::StencilButton() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs)->get_StencilButton(&value));
        return Windows::UI::Xaml::Controls::InkToolbarStencilButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarIsStencilButtonCheckedChangedEventArgs<D>::StencilKind() const
    {
        Windows::UI::Xaml::Controls::InkToolbarStencilKind value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs)->get_StencilKind(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::MenuKind() const
    {
        Windows::UI::Xaml::Controls::InkToolbarMenuKind value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarMenuButton)->get_MenuKind(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::IsExtensionGlyphShown() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarMenuButton)->get_IsExtensionGlyphShown(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::IsExtensionGlyphShown(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarMenuButton)->put_IsExtensionGlyphShown(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButtonStatics<D>::IsExtensionGlyphShownProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics)->get_IsExtensionGlyphShownProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::Palette() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_Palette(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::Palette(param::vector<Windows::UI::Xaml::Media::Brush> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_Palette(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MinStrokeWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_MinStrokeWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MinStrokeWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_MinStrokeWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MaxStrokeWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_MaxStrokeWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MaxStrokeWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_MaxStrokeWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_SelectedBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrushIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_SelectedBrushIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrushIndex(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_SelectedBrushIndex(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedStrokeWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_SelectedStrokeWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedStrokeWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_SelectedStrokeWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::PaletteProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_PaletteProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::MinStrokeWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_MinStrokeWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::MaxStrokeWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_MaxStrokeWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_SelectedBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedBrushIndexProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_SelectedBrushIndexProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedStrokeWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_SelectedStrokeWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControl<D>::PenButton() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl)->get_PenButton(&value));
        return Windows::UI::Xaml::Controls::InkToolbarPenButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControlStatics<D>::PenButtonProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics)->get_PenButtonProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPencilButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarPencilButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButton<D>::Ruler() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarRulerButton)->get_Ruler(&value));
        return Windows::UI::Input::Inking::InkPresenterRuler{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarRulerButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButtonStatics<D>::RulerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics)->get_RulerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::InitialControlsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_InitialControlsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::ChildrenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_ChildrenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::ActiveToolProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_ActiveToolProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::InkDrawingAttributesProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_InkDrawingAttributesProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::IsRulerButtonCheckedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_IsRulerButtonCheckedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::TargetInkCanvasProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_TargetInkCanvasProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::IsStencilButtonCheckedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics2)->get_IsStencilButtonCheckedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::ButtonFlyoutPlacementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics2)->get_ButtonFlyoutPlacementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics2)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics3<D>::TargetInkPresenterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics3)->get_TargetInkPresenterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::Ruler() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_Ruler(&value));
        return Windows::UI::Input::Inking::InkPresenterRuler{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::Protractor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_Protractor(&value));
        return Windows::UI::Input::Inking::InkPresenterProtractor{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::SelectedStencil() const
    {
        Windows::UI::Xaml::Controls::InkToolbarStencilKind value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_SelectedStencil(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::SelectedStencil(Windows::UI::Xaml::Controls::InkToolbarStencilKind const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->put_SelectedStencil(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsRulerItemVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_IsRulerItemVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsRulerItemVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->put_IsRulerItemVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsProtractorItemVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_IsProtractorItemVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsProtractorItemVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->put_IsProtractorItemVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::InkToolbarStencilButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::RulerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_RulerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::ProtractorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_ProtractorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::SelectedStencilProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_SelectedStencilProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::IsRulerItemVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_IsRulerItemVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::IsProtractorItemVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_IsProtractorItemVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToggleButton<D>::ToggleKind() const
    {
        Windows::UI::Xaml::Controls::InkToolbarToggle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToggleButton)->get_ToggleKind(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::ToolKind() const
    {
        Windows::UI::Xaml::Controls::InkToolbarTool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToolButton)->get_ToolKind(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::IsExtensionGlyphShown() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToolButton)->get_IsExtensionGlyphShown(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::IsExtensionGlyphShown(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToolButton)->put_IsExtensionGlyphShown(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToolButtonStatics<D>::IsExtensionGlyphShownProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics)->get_IsExtensionGlyphShownProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInsertionPanel<D>::GetInsertionIndexes(Windows::Foundation::Point const& position, int32_t& first, int32_t& second) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IInsertionPanel)->GetInsertionIndexes(impl::bind_in(position), &first, &second));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemClickEventArgs<D>::ClickedItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemClickEventArgs)->get_ClickedItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->add_ItemsChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged_revoker consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(auto_revoke_t, Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ItemsChanged_revoker>(this, ItemsChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->remove_ItemsChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ItemFromContainer(*(void**)(&container), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ContainerFromItem(Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ContainerFromItem(*(void**)(&item), &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::IndexFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->IndexFromContainer(*(void**)(&container), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ContainerFromIndex(int32_t index) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ContainerFromIndex(index, &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GetItemContainerGeneratorForPanel(Windows::UI::Xaml::Controls::Panel const& panel) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->GetItemContainerGeneratorForPanel(*(void**)(&panel), &result));
        return Windows::UI::Xaml::Controls::ItemContainerGenerator{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::StartAt(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position, Windows::UI::Xaml::Controls::Primitives::GeneratorDirection const& direction, bool allowStartAtRealizedItem) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->StartAt(impl::bind_in(position), static_cast<int32_t>(direction), allowStartAtRealizedItem));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Stop() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->Stop());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GenerateNext(bool& isNewlyRealized) const
    {
        void* returnValue{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->GenerateNext(&isNewlyRealized, &returnValue));
        return Windows::UI::Xaml::DependencyObject{ returnValue, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::PrepareItemContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->PrepareItemContainer(*(void**)(&container)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::RemoveAll() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->RemoveAll());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Remove(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position, int32_t count) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->Remove(impl::bind_in(position), count));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GeneratorPositionFromIndex(int32_t itemIndex) const
    {
        Windows::UI::Xaml::Controls::Primitives::GeneratorPosition result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->GeneratorPositionFromIndex(itemIndex, put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::IndexFromGeneratorPosition(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->IndexFromGeneratorPosition(impl::bind_in(position), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Recycle(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position, int32_t count) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->Recycle(impl::bind_in(position), count));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ItemFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ItemFromContainer(*(void**)(&container), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ContainerFromItem(Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ContainerFromItem(*(void**)(&item), &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::IndexFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->IndexFromContainer(*(void**)(&container), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ContainerFromIndex(int32_t index) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ContainerFromIndex(index, &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemsSource(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsSource(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemsSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_Items(&value));
        return Windows::UI::Xaml::Controls::ItemCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplateSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemTemplateSelector(&value));
        return Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemTemplateSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsPanel() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemsPanel(&value));
        return Windows::UI::Xaml::Controls::ItemsPanelTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsPanel(Windows::UI::Xaml::Controls::ItemsPanelTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemsPanel(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::DisplayMemberPath() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_DisplayMemberPath(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::DisplayMemberPath(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_DisplayMemberPath(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemContainerStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemContainerStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyleSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemContainerStyleSelector(&value));
        return Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyleSelector(Windows::UI::Xaml::Controls::StyleSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemContainerStyleSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerGenerator() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemContainerGenerator(&value));
        return Windows::UI::Xaml::Controls::ItemContainerGenerator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemContainerTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemContainerTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_GroupStyle(&value));
        return Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::GroupStyle>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyleSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_GroupStyleSelector(&value));
        return Windows::UI::Xaml::Controls::GroupStyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyleSelector(Windows::UI::Xaml::Controls::GroupStyleSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_GroupStyleSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::IsGrouping() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_IsGrouping(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl2<D>::ItemsPanelRoot() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl2)->get_ItemsPanelRoot(&value));
        return Windows::UI::Xaml::Controls::Panel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl3<D>::GroupHeaderContainerFromItemContainer(Windows::UI::Xaml::DependencyObject const& itemContainer) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControl3)->GroupHeaderContainerFromItemContainer(*(void**)(&itemContainer), &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ItemsControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::IsItemItsOwnContainerOverride(Windows::Foundation::IInspectable const& item) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->IsItemItsOwnContainerOverride(*(void**)(&item), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::GetContainerForItemOverride() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->GetContainerForItemOverride(&result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::ClearContainerForItemOverride(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& item) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->ClearContainerForItemOverride(*(void**)(&element), *(void**)(&item)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::PrepareContainerForItemOverride(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& item) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->PrepareContainerForItemOverride(*(void**)(&element), *(void**)(&item)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemsChanged(Windows::Foundation::IInspectable const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemsChanged(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemContainerStyleChanged(Windows::UI::Xaml::Style const& oldItemContainerStyle, Windows::UI::Xaml::Style const& newItemContainerStyle) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemContainerStyleChanged(*(void**)(&oldItemContainerStyle), *(void**)(&newItemContainerStyle)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemContainerStyleSelectorChanged(Windows::UI::Xaml::Controls::StyleSelector const& oldItemContainerStyleSelector, Windows::UI::Xaml::Controls::StyleSelector const& newItemContainerStyleSelector) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemContainerStyleSelectorChanged(*(void**)(&oldItemContainerStyleSelector), *(void**)(&newItemContainerStyleSelector)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldItemTemplate, Windows::UI::Xaml::DataTemplate const& newItemTemplate) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemTemplateChanged(*(void**)(&oldItemTemplate), *(void**)(&newItemTemplate)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldItemTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newItemTemplateSelector) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemTemplateSelectorChanged(*(void**)(&oldItemTemplateSelector), *(void**)(&newItemTemplateSelector)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnGroupStyleSelectorChanged(Windows::UI::Xaml::Controls::GroupStyleSelector const& oldGroupStyleSelector, Windows::UI::Xaml::Controls::GroupStyleSelector const& newGroupStyleSelector) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnGroupStyleSelectorChanged(*(void**)(&oldGroupStyleSelector), *(void**)(&newGroupStyleSelector)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemsSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemTemplateSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemTemplateSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsPanelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemsPanelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::DisplayMemberPathProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_DisplayMemberPathProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemContainerStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerStyleSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemContainerStyleSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemContainerTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::GroupStyleSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_GroupStyleSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::IsGroupingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_IsGroupingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::GetItemsOwner(Windows::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->GetItemsOwner(*(void**)(&element), &result));
        return Windows::UI::Xaml::Controls::ItemsControl{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsControlFromItemContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->ItemsControlFromItemContainer(*(void**)(&container), &result));
        return Windows::UI::Xaml::Controls::ItemsControl{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPickedEventArgs<D>::AddedItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPickedEventArgs)->get_AddedItems(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPickedEventArgs<D>::RemovedItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPickedEventArgs)->get_RemovedItems(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->get_HeaderTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->put_HeaderTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::Footer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->get_Footer(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::Footer(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->put_Footer(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->get_FooterTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->put_FooterTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->get_FooterTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->put_FooterTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics)->get_HeaderTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics2)->get_FooterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics2)->get_FooterTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics2)->get_FooterTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupPadding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_GroupPadding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupPadding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_GroupPadding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::FirstCacheIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_FirstCacheIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::FirstVisibleIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_FirstVisibleIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::LastVisibleIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_LastVisibleIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::LastCacheIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_LastCacheIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ScrollingDirection() const
    {
        Windows::UI::Xaml::Controls::PanelScrollingDirection value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_ScrollingDirection(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupHeaderPlacement() const
    {
        Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_GroupHeaderPlacement(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_GroupHeaderPlacement(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ItemsUpdatingScrollMode() const
    {
        Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_ItemsUpdatingScrollMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ItemsUpdatingScrollMode(Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_ItemsUpdatingScrollMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::CacheLength() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_CacheLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::CacheLength(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_CacheLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel2<D>::AreStickyGroupHeadersEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel2)->get_AreStickyGroupHeadersEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel2<D>::AreStickyGroupHeadersEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel2)->put_AreStickyGroupHeadersEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::GroupPaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics)->get_GroupPaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::GroupHeaderPlacementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics)->get_GroupHeaderPlacementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::CacheLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics)->get_CacheLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics2<D>::AreStickyGroupHeadersEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics2)->get_AreStickyGroupHeadersEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupPadding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_GroupPadding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupPadding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_GroupPadding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::MaximumRowsOrColumns() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_MaximumRowsOrColumns(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_MaximumRowsOrColumns(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_ItemWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_ItemWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_ItemHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_ItemHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::FirstCacheIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_FirstCacheIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::FirstVisibleIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_FirstVisibleIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::LastVisibleIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_LastVisibleIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::LastCacheIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_LastCacheIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ScrollingDirection() const
    {
        Windows::UI::Xaml::Controls::PanelScrollingDirection value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_ScrollingDirection(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupHeaderPlacement() const
    {
        Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_GroupHeaderPlacement(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_GroupHeaderPlacement(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::CacheLength() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_CacheLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::CacheLength(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_CacheLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid2<D>::AreStickyGroupHeadersEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid2)->get_AreStickyGroupHeadersEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid2<D>::AreStickyGroupHeadersEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid2)->put_AreStickyGroupHeadersEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::GroupPaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_GroupPaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_MaximumRowsOrColumnsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::ItemWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_ItemWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::ItemHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_ItemHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::GroupHeaderPlacementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_GroupHeaderPlacementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::CacheLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_CacheLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics2<D>::AreStickyGroupHeadersEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics2)->get_AreStickyGroupHeadersEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectedItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBox)->get_SelectedItems(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectionMode() const
    {
        Windows::UI::Xaml::Controls::SelectionMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBox)->get_SelectionMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectionMode(Windows::UI::Xaml::Controls::SelectionMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBox)->put_SelectionMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::ScrollIntoView(Windows::Foundation::IInspectable const& item) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBox)->ScrollIntoView(*(void**)(&item)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectAll() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBox)->SelectAll());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox2<D>::SingleSelectionFollowsFocus() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBox2)->get_SingleSelectionFollowsFocus(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox2<D>::SingleSelectionFollowsFocus(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBox2)->put_SingleSelectionFollowsFocus(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBoxFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ListBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBoxItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBoxItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ListBoxItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBoxStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBoxStatics)->get_SelectionModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBoxStatics2<D>::SingleSelectionFollowsFocusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListBoxStatics2)->get_SingleSelectionFollowsFocusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_ItemsSource(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsSource(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_ItemsSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_ItemTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_ItemTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::DisplayMemberPath() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_DisplayMemberPath(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::DisplayMemberPath(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_DisplayMemberPath(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectionMode() const
    {
        Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectionMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectionMode(Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectionMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedIndex(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectedIndex(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItem(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectedItem(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValue() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedValue(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValue(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectedValue(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValuePath() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedValuePath(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValuePath(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectedValuePath(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedItems(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListPickerFlyout, Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->add_ItemsPicked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked_revoker consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListPickerFlyout, Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ItemsPicked_revoker>(this, ItemsPicked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->remove_ItemsPicked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ShowAtAsync(Windows::UI::Xaml::FrameworkElement const& target) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->ShowAtAsync(*(void**)(&target), &operation));
        return Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::ItemsSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_ItemsSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::ItemTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_ItemTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::DisplayMemberPathProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_DisplayMemberPathProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectionModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedIndexProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectedIndexProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedItemProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectedItemProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedValueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectedValueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedValuePathProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectedValuePathProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectedItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_SelectedItems(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectionMode() const
    {
        Windows::UI::Xaml::Controls::ListViewSelectionMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_SelectionMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectionMode(Windows::UI::Xaml::Controls::ListViewSelectionMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_SelectionMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsSwipeEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_IsSwipeEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsSwipeEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_IsSwipeEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanDragItems() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_CanDragItems(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanDragItems(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_CanDragItems(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanReorderItems() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_CanReorderItems(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanReorderItems(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_CanReorderItems(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsItemClickEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_IsItemClickEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsItemClickEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_IsItemClickEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DataFetchSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_DataFetchSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DataFetchSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_DataFetchSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingThreshold() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_IncrementalLoadingThreshold(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingThreshold(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_IncrementalLoadingThreshold(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingTrigger() const
    {
        Windows::UI::Xaml::Controls::IncrementalLoadingTrigger value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_IncrementalLoadingTrigger(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingTrigger(Windows::UI::Xaml::Controls::IncrementalLoadingTrigger const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_IncrementalLoadingTrigger(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(Windows::UI::Xaml::Controls::ItemClickEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->add_ItemClick(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick_revoker consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(auto_revoke_t, Windows::UI::Xaml::Controls::ItemClickEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ItemClick_revoker>(this, ItemClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->remove_ItemClick(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->add_DragItemsStarting(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting_revoker consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(auto_revoke_t, Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, DragItemsStarting_revoker>(this, DragItemsStarting(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->remove_DragItemsStarting(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ScrollIntoView(Windows::Foundation::IInspectable const& item) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->ScrollIntoView(*(void**)(&item)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectAll() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->SelectAll());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::LoadMoreItemsAsync() const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->LoadMoreItemsAsync(&operation));
        return Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Data::LoadMoreItemsResult>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ScrollIntoView(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::Controls::ScrollIntoViewAlignment const& alignment) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->ScrollIntoViewWithAlignment(*(void**)(&item), static_cast<int32_t>(alignment)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_HeaderTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_HeaderTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ShowsScrollingPlaceholders() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->get_ShowsScrollingPlaceholders(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ShowsScrollingPlaceholders(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->put_ShowsScrollingPlaceholders(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->add_ContainerContentChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging_revoker consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ContainerContentChanging_revoker>(this, ContainerContentChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->remove_ContainerContentChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::SetDesiredContainerUpdateDuration(Windows::Foundation::TimeSpan const& duration) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->SetDesiredContainerUpdateDuration(impl::bind_in(duration)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::Footer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->get_Footer(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::Footer(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->put_Footer(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->get_FooterTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->put_FooterTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->get_FooterTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->put_FooterTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase3<D>::ReorderMode() const
    {
        Windows::UI::Xaml::Controls::ListViewReorderMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase3)->get_ReorderMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase3<D>::ReorderMode(Windows::UI::Xaml::Controls::ListViewReorderMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase3)->put_ReorderMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::SelectedRanges() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->get_SelectedRanges(&value));
        return Windows::Foundation::Collections::IVectorView<Windows::UI::Xaml::Data::ItemIndexRange>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::IsMultiSelectCheckBoxEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->get_IsMultiSelectCheckBoxEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::IsMultiSelectCheckBoxEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->put_IsMultiSelectCheckBoxEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_DragItemsCompleted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted_revoker consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DragItemsCompleted_revoker>(this, DragItemsCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->remove_DragItemsCompleted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_ChoosingItemContainer(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer_revoker consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ChoosingItemContainer_revoker>(this, ChoosingItemContainer(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->remove_ChoosingItemContainer(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_ChoosingGroupHeaderContainer(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer_revoker consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ChoosingGroupHeaderContainer_revoker>(this, ChoosingGroupHeaderContainer(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->remove_ChoosingGroupHeaderContainer(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::SelectRange(Windows::UI::Xaml::Data::ItemIndexRange const& itemIndexRange) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->SelectRange(*(void**)(&itemIndexRange)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DeselectRange(Windows::UI::Xaml::Data::ItemIndexRange const& itemIndexRange) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->DeselectRange(*(void**)(&itemIndexRange)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::SingleSelectionFollowsFocus() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase5)->get_SingleSelectionFollowsFocus(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::SingleSelectionFollowsFocus(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase5)->put_SingleSelectionFollowsFocus(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::IsDragSource() const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase5)->IsDragSource(&result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase6<D>::TryStartConnectedAnimationAsync(Windows::UI::Xaml::Media::Animation::ConnectedAnimation const& animation, Windows::Foundation::IInspectable const& item, param::hstring const& elementName) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase6)->TryStartConnectedAnimationAsync(*(void**)(&animation), *(void**)(&item), *(void**)(&elementName), &operation));
        return Windows::Foundation::IAsyncOperation<bool>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase6<D>::PrepareConnectedAnimation(param::hstring const& key, Windows::Foundation::IInspectable const& item, param::hstring const& elementName) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBase6)->PrepareConnectedAnimation(*(void**)(&key), *(void**)(&item), *(void**)(&elementName), &result));
        return Windows::UI::Xaml::Media::Animation::ConnectedAnimation{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ListViewBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_SelectionModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsSwipeEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IsSwipeEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::CanDragItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_CanDragItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::CanReorderItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_CanReorderItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsItemClickEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IsItemClickEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::DataFetchSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_DataFetchSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IncrementalLoadingThresholdProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IncrementalLoadingThresholdProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IncrementalLoadingTriggerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IncrementalLoadingTriggerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::SemanticZoomOwnerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_SemanticZoomOwnerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsActiveViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IsActiveViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsZoomedInViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IsZoomedInViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_HeaderTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::ShowsScrollingPlaceholdersProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics2)->get_ShowsScrollingPlaceholdersProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics2)->get_FooterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics2)->get_FooterTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics2)->get_FooterTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics3<D>::ReorderModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics3)->get_ReorderModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics4<D>::IsMultiSelectCheckBoxEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics4)->get_IsMultiSelectCheckBoxEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics5<D>::SingleSelectionFollowsFocusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics5)->get_SingleSelectionFollowsFocusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ListView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewHeaderItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewHeaderItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ListViewHeaderItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewItem<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewItem)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ListViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewPersistenceHelperStatics<D>::GetRelativeScrollPosition(Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const& itemToKeyHandler) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics)->GetRelativeScrollPosition(*(void**)(&listViewBase), *(void**)(&itemToKeyHandler), &result));
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewPersistenceHelperStatics<D>::SetRelativeScrollPositionAsync(Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, param::hstring const& relativeScrollPosition, Windows::UI::Xaml::Controls::ListViewKeyToItemHandler const& keyToItemHandler) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics)->SetRelativeScrollPositionAsync(*(void**)(&listViewBase), *(void**)(&relativeScrollPosition), *(void**)(&keyToItemHandler), &operation));
        return Windows::Foundation::IAsyncAction{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PosterSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_PosterSource(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PosterSource(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_PosterSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Source() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Source(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Source(Windows::Foundation::Uri const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Source(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsMuted() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_IsMuted(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsMuted(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_IsMuted(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsAudioOnly() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_IsAudioOnly(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AutoPlay() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AutoPlay(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AutoPlay(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_AutoPlay(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Volume() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Volume(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Volume(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Volume(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Balance() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Balance(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Balance(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Balance(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalVideoHeight() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_NaturalVideoHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalVideoWidth() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_NaturalVideoWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalDuration() const
    {
        Windows::UI::Xaml::Duration value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_NaturalDuration(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Position() const
    {
        Windows::Foundation::TimeSpan value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Position(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Position(Windows::Foundation::TimeSpan const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Position(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgress() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_DownloadProgress(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgress() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_BufferingProgress(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_DownloadProgressOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentState() const
    {
        Windows::UI::Xaml::Media::MediaElementState value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_CurrentState(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Markers() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Markers(&value));
        return Windows::UI::Xaml::Media::TimelineMarkerCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanSeek() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_CanSeek(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanPause() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_CanPause(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamCount() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AudioStreamCount(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamIndex() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AudioStreamIndex(&value));
        return Windows::Foundation::IReference<int32_t>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamIndex(Windows::Foundation::IReference<int32_t> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_AudioStreamIndex(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlaybackRate() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_PlaybackRate(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlaybackRate(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_PlaybackRate(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsLooping() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_IsLooping(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsLooping(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_IsLooping(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlayToSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_PlayToSource(&value));
        return Windows::Media::PlayTo::PlayToSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DefaultPlaybackRate() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_DefaultPlaybackRate(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DefaultPlaybackRate(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_DefaultPlaybackRate(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AspectRatioWidth() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AspectRatioWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AspectRatioHeight() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AspectRatioHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RealTimePlayback() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_RealTimePlayback(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RealTimePlayback(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_RealTimePlayback(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioCategory() const
    {
        Windows::UI::Xaml::Media::AudioCategory value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AudioCategory(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioCategory(Windows::UI::Xaml::Media::AudioCategory const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_AudioCategory(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioDeviceType() const
    {
        Windows::UI::Xaml::Media::AudioDeviceType value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AudioDeviceType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioDeviceType(Windows::UI::Xaml::Media::AudioDeviceType const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_AudioDeviceType(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ProtectionManager() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_ProtectionManager(&value));
        return Windows::Media::Protection::MediaProtectionManager{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ProtectionManager(Windows::Media::Protection::MediaProtectionManager const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_ProtectionManager(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoPackingMode() const
    {
        Windows::UI::Xaml::Media::Stereo3DVideoPackingMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Stereo3DVideoPackingMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoPackingMode(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Stereo3DVideoPackingMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoRenderMode() const
    {
        Windows::UI::Xaml::Media::Stereo3DVideoRenderMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Stereo3DVideoRenderMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoRenderMode(Windows::UI::Xaml::Media::Stereo3DVideoRenderMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Stereo3DVideoRenderMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsStereo3DVideo() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_IsStereo3DVideo(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaOpened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, MediaOpened_revoker>(this, MediaOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaOpened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaEnded(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, MediaEnded_revoker>(this, MediaEnded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaEnded(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaFailed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(auto_revoke_t, Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, MediaFailed_revoker>(this, MediaFailed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaFailed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_DownloadProgressChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, DownloadProgressChanged_revoker>(this, DownloadProgressChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_DownloadProgressChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_BufferingProgressChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, BufferingProgressChanged_revoker>(this, BufferingProgressChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_BufferingProgressChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_CurrentStateChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, CurrentStateChanged_revoker>(this, CurrentStateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_CurrentStateChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MarkerReached(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(auto_revoke_t, Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, MarkerReached_revoker>(this, MarkerReached(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MarkerReached(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_RateChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(auto_revoke_t, Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, RateChanged_revoker>(this, RateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_RateChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_VolumeChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, VolumeChanged_revoker>(this, VolumeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_VolumeChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_SeekCompleted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted_revoker consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SeekCompleted_revoker>(this, SeekCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_SeekCompleted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stop() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->Stop());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Play() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->Play());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Pause() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->Pause());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanPlayType(param::hstring const& type) const
    {
        Windows::UI::Xaml::Media::MediaCanPlayResponse result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->CanPlayType(*(void**)(&type), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SetSource(Windows::Storage::Streams::IRandomAccessStream const& stream, param::hstring const& mimeType) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->SetSource(*(void**)(&stream), *(void**)(&mimeType)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::GetAudioStreamLanguage(Windows::Foundation::IReference<int32_t> const& index) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->GetAudioStreamLanguage(*(void**)(&index), &result));
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AddAudioEffect(param::hstring const& effectID, bool effectOptional, Windows::Foundation::Collections::IPropertySet const& effectConfiguration) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->AddAudioEffect(*(void**)(&effectID), effectOptional, *(void**)(&effectConfiguration)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AddVideoEffect(param::hstring const& effectID, bool effectOptional, Windows::Foundation::Collections::IPropertySet const& effectConfiguration) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->AddVideoEffect(*(void**)(&effectID), effectOptional, *(void**)(&effectConfiguration)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RemoveAllEffects() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->RemoveAllEffects());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ActualStereo3DVideoPackingMode() const
    {
        Windows::UI::Xaml::Media::Stereo3DVideoPackingMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_ActualStereo3DVideoPackingMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::AreTransportControlsEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->get_AreTransportControlsEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::AreTransportControlsEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->put_AreTransportControlsEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::Stretch() const
    {
        Windows::UI::Xaml::Media::Stretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->get_Stretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->put_Stretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::IsFullWindow() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->get_IsFullWindow(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::IsFullWindow(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->put_IsFullWindow(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::SetMediaStreamSource(Windows::Media::Core::IMediaSource const& source) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->SetMediaStreamSource(*(void**)(&source)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::PlayToPreferredSourceUri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->get_PlayToPreferredSourceUri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::PlayToPreferredSourceUri(Windows::Foundation::Uri const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->put_PlayToPreferredSourceUri(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::TransportControls() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->get_TransportControls(&value));
        return Windows::UI::Xaml::Controls::MediaTransportControls{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::TransportControls(Windows::UI::Xaml::Controls::MediaTransportControls const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->put_TransportControls(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaElement, Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->add_PartialMediaFailureDetected(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected_revoker consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaElement, Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PartialMediaFailureDetected_revoker>(this, PartialMediaFailureDetected(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->remove_PartialMediaFailureDetected(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::SetPlaybackSource(Windows::Media::Playback::IMediaPlaybackSource const& source) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->SetPlaybackSource(*(void**)(&source)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::GetAsCastingSource() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->GetAsCastingSource(&result));
        return Windows::Media::Casting::CastingSource{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PosterSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_PosterSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::SourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_SourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsMutedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_IsMutedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsAudioOnlyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_IsAudioOnlyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AutoPlayProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AutoPlayProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::VolumeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_VolumeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::BalanceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_BalanceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalVideoHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_NaturalVideoHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalVideoWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_NaturalVideoWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalDurationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_NaturalDurationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PositionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_PositionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DownloadProgressProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_DownloadProgressProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::BufferingProgressProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_BufferingProgressProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DownloadProgressOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_DownloadProgressOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CurrentStateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_CurrentStateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CanSeekProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_CanSeekProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CanPauseProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_CanPauseProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioStreamCountProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AudioStreamCountProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioStreamIndexProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AudioStreamIndexProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PlaybackRateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_PlaybackRateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsLoopingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_IsLoopingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PlayToSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_PlayToSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DefaultPlaybackRateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_DefaultPlaybackRateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AspectRatioWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AspectRatioWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AspectRatioHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AspectRatioHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::RealTimePlaybackProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_RealTimePlaybackProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioCategoryProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AudioCategoryProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioDeviceTypeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AudioDeviceTypeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::ProtectionManagerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_ProtectionManagerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::Stereo3DVideoPackingModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_Stereo3DVideoPackingModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::Stereo3DVideoRenderModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_Stereo3DVideoRenderModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsStereo3DVideoProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_IsStereo3DVideoProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::ActualStereo3DVideoPackingModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_ActualStereo3DVideoPackingModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::AreTransportControlsEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics2)->get_AreTransportControlsEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::StretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics2)->get_StretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::IsFullWindowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics2)->get_IsFullWindowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::PlayToPreferredSourceUriProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics2)->get_PlayToPreferredSourceUriProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Source() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_Source(&value));
        return Windows::Media::Playback::IMediaPlaybackSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Source(Windows::Media::Playback::IMediaPlaybackSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_Source(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::TransportControls() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_TransportControls(&value));
        return Windows::UI::Xaml::Controls::MediaTransportControls{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::TransportControls(Windows::UI::Xaml::Controls::MediaTransportControls const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_TransportControls(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AreTransportControlsEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_AreTransportControlsEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AreTransportControlsEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_AreTransportControlsEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::PosterSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_PosterSource(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::PosterSource(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_PosterSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Stretch() const
    {
        Windows::UI::Xaml::Media::Stretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_Stretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_Stretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AutoPlay() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_AutoPlay(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AutoPlay(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_AutoPlay(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::IsFullWindow() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_IsFullWindow(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::IsFullWindow(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_IsFullWindow(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::MediaPlayer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_MediaPlayer(&value));
        return Windows::Media::Playback::MediaPlayer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::SetMediaPlayer(Windows::Media::Playback::MediaPlayer const& mediaPlayer) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->SetMediaPlayer(*(void**)(&mediaPlayer)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MediaPlayerElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::SourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_SourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::AreTransportControlsEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_AreTransportControlsEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::PosterSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_PosterSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::StretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_StretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::AutoPlayProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_AutoPlayProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::IsFullWindowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_IsFullWindowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::MediaPlayerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_MediaPlayerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::MediaPlayer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->get_MediaPlayer(&value));
        return Windows::Media::Playback::MediaPlayer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::MediaPlayer(Windows::Media::Playback::MediaPlayer const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->put_MediaPlayer(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::Stretch() const
    {
        Windows::UI::Xaml::Media::Stretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->get_Stretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->put_Stretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::IsFullWindow() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->get_IsFullWindow(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::IsFullWindow(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->put_IsFullWindow(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MediaPlayerPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::MediaPlayerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics)->get_MediaPlayerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::StretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics)->get_StretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::IsFullWindowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics)->get_IsFullWindowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFullWindowButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFullWindowButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFullWindowEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFullWindowEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsZoomButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsZoomButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsZoomEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsZoomEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFastForwardButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFastForwardButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFastForwardEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFastForwardEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFastRewindButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFastRewindButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFastRewindEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFastRewindEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsStopButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsStopButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsStopEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsStopEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsVolumeButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsVolumeButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsVolumeEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsVolumeEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsPlaybackRateButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsPlaybackRateButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsPlaybackRateEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsPlaybackRateEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekBarVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsSeekBarVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekBarVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsSeekBarVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsSeekEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsSeekEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsCompact() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsCompact(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsCompact(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsCompact(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsSkipForwardButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsSkipForwardButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsSkipForwardEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsSkipForwardEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsSkipBackwardButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsSkipBackwardButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsSkipBackwardEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsSkipBackwardEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsNextTrackButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsNextTrackButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsNextTrackButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsNextTrackButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsPreviousTrackButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsPreviousTrackButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsPreviousTrackButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsPreviousTrackButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::FastPlayFallbackBehaviour() const
    {
        Windows::UI::Xaml::Media::FastPlayFallbackBehaviour value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_FastPlayFallbackBehaviour(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::FastPlayFallbackBehaviour(Windows::UI::Xaml::Media::FastPlayFallbackBehaviour const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_FastPlayFallbackBehaviour(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaTransportControls, Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->add_ThumbnailRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested_revoker consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaTransportControls, Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ThumbnailRequested_revoker>(this, ThumbnailRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->remove_ThumbnailRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::ShowAndHideAutomatically() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->get_ShowAndHideAutomatically(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::ShowAndHideAutomatically(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->put_ShowAndHideAutomatically(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->get_IsRepeatEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->put_IsRepeatEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->get_IsRepeatButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->put_IsRepeatButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::Show() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->Show());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::Hide() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->Hide());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls4)->get_IsCompactOverlayButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls4)->put_IsCompactOverlayButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls4)->get_IsCompactOverlayEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls4)->put_IsCompactOverlayEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MediaTransportControls{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::DropoutOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics)->get_DropoutOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::GetDropoutOrder(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics)->GetDropoutOrder(*(void**)(&element), &result));
        return Windows::Foundation::IReference<int32_t>{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::SetDropoutOrder(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IReference<int32_t> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics)->SetDropoutOrder(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFullWindowButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFullWindowButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFullWindowEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFullWindowEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsZoomButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsZoomButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsZoomEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsZoomEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastForwardButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFastForwardButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastForwardEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFastForwardEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastRewindButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFastRewindButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastRewindEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFastRewindEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsStopButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsStopButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsStopEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsStopEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsVolumeButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsVolumeButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsVolumeEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsVolumeEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsPlaybackRateButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsPlaybackRateButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsPlaybackRateEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsPlaybackRateEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsSeekBarVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsSeekBarVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsSeekEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsSeekEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsCompactProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsCompactProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipForwardButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsSkipForwardButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipForwardEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsSkipForwardEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipBackwardButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsSkipBackwardButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipBackwardEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsSkipBackwardEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsNextTrackButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsNextTrackButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsPreviousTrackButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsPreviousTrackButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::FastPlayFallbackBehaviourProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_FastPlayFallbackBehaviourProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::ShowAndHideAutomaticallyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3)->get_ShowAndHideAutomaticallyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::IsRepeatEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3)->get_IsRepeatEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::IsRepeatButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3)->get_IsRepeatButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics4<D>::IsCompactOverlayButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4)->get_IsCompactOverlayButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics4<D>::IsCompactOverlayEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4)->get_IsCompactOverlayEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBar<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBar)->get_Items(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuBarItem>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MenuBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Title() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarItem)->get_Title(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Title(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarItem)->put_Title(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarItem)->get_Items(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MenuBarItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItemFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MenuBarItemFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItemStatics<D>::TitleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarItemStatics)->get_TitleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItemStatics<D>::ItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarItemStatics)->get_ItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarStatics<D>::ItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuBarStatics)->get_ItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyout)->get_Items(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::MenuFlyoutPresenterStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyout)->get_MenuFlyoutPresenterStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::MenuFlyoutPresenterStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyout)->put_MenuFlyoutPresenterStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyout2<D>::ShowAt(Windows::UI::Xaml::UIElement const& targetElement, Windows::Foundation::Point const& point) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyout2)->ShowAt(*(void**)(&targetElement), impl::bind_in(point)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MenuFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Text() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->get_Text(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Text(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->put_Text(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Command() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->get_Command(&value));
        return Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Command(Windows::UI::Xaml::Input::ICommand const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->put_Command(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::CommandParameter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->get_CommandParameter(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::CommandParameter(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->put_CommandParameter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->add_Click(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click_revoker consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Click_revoker>(this, Click(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->remove_Click(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem2<D>::Icon() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem2)->get_Icon(&value));
        return Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem2<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem2)->put_Icon(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::KeyboardAcceleratorTextOverride() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem3)->get_KeyboardAcceleratorTextOverride(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem3)->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem3)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MenuFlyoutItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::TextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics)->get_TextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::CommandProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics)->get_CommandProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::CommandParameterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics)->get_CommandParameterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics2<D>::IconProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2)->get_IconProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics3<D>::KeyboardAcceleratorTextOverrideProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3)->get_KeyboardAcceleratorTextOverrideProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenter2<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenter3<D>::IsDefaultShadowEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3)->get_IsDefaultShadowEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenter3<D>::IsDefaultShadowEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3)->put_IsDefaultShadowEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MenuFlyoutPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenterStatics3<D>::IsDefaultShadowEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3)->get_IsDefaultShadowEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSeparatorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::MenuFlyoutSeparator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutStatics<D>::MenuFlyoutPresenterStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutStatics)->get_MenuFlyoutPresenterStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem)->get_Items(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Text() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem)->get_Text(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Text(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem)->put_Text(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem2<D>::Icon() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2)->get_Icon(&value));
        return Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem2<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2)->put_Icon(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItemStatics<D>::TextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics)->get_TextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItemStatics2<D>::IconProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2)->get_IconProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigate<D>::Navigate(Windows::UI::Xaml::Interop::TypeName const& sourcePageType) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigate)->Navigate(impl::bind_in(sourcePageType), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneOpen() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsPaneOpen(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneOpen(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_IsPaneOpen(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactModeThresholdWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_CompactModeThresholdWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactModeThresholdWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_CompactModeThresholdWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ExpandedModeThresholdWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_ExpandedModeThresholdWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ExpandedModeThresholdWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_ExpandedModeThresholdWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneFooter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_PaneFooter(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneFooter(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_PaneFooter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayMode() const
    {
        Windows::UI::Xaml::Controls::NavigationViewDisplayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_DisplayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsSettingsVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsSettingsVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsSettingsVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_IsSettingsVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneToggleButtonVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsPaneToggleButtonVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneToggleButtonVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_IsPaneToggleButtonVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::AlwaysShowHeader() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_AlwaysShowHeader(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::AlwaysShowHeader(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_AlwaysShowHeader(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactPaneLength() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_CompactPaneLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactPaneLength(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_CompactPaneLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::OpenPaneLength() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_OpenPaneLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::OpenPaneLength(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_OpenPaneLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneToggleButtonStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_PaneToggleButtonStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneToggleButtonStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_PaneToggleButtonStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectedItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_SelectedItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectedItem(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_SelectedItem(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItems(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemsSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemsSource(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemsSource(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemsSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SettingsItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_SettingsItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::AutoSuggestBox() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_AutoSuggestBox(&value));
        return Windows::UI::Xaml::Controls::AutoSuggestBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::AutoSuggestBox(Windows::UI::Xaml::Controls::AutoSuggestBox const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_AutoSuggestBox(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplateSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemTemplateSelector(&value));
        return Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemTemplateSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemContainerStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemContainerStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyleSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemContainerStyleSelector(&value));
        return Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyleSelector(Windows::UI::Xaml::Controls::StyleSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemContainerStyleSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->MenuItemFromContainer(*(void**)(&container), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ContainerFromMenuItem(Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->ContainerFromMenuItem(*(void**)(&item), &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged_revoker consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->remove_SelectionChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_ItemInvoked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked_revoker consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ItemInvoked_revoker>(this, ItemInvoked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->remove_ItemInvoked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_DisplayModeChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged_revoker consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DisplayModeChanged_revoker>(this, DisplayModeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView)->remove_DisplayModeChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackButtonVisible() const
    {
        Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->get_IsBackButtonVisible(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackButtonVisible(Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->put_IsBackButtonVisible(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->get_IsBackEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->put_IsBackEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneTitle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->get_PaneTitle(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneTitle(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->put_PaneTitle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_BackRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested_revoker consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, BackRequested_revoker>(this, BackRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_BackRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneClosed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed_revoker consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneClosed_revoker>(this, PaneClosed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneClosed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneClosing(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing_revoker consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PaneClosing_revoker>(this, PaneClosing(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneClosing(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneOpened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened_revoker consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneOpened_revoker>(this, PaneOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneOpened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneOpening(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening_revoker consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneOpening_revoker>(this, PaneOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneOpening(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneDisplayMode() const
    {
        Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_PaneDisplayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneDisplayMode(Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_PaneDisplayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneHeader() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_PaneHeader(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneHeader(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_PaneHeader(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneCustomContent() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_PaneCustomContent(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneCustomContent(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_PaneCustomContent(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ContentOverlay() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_ContentOverlay(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ContentOverlay(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_ContentOverlay(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::IsPaneVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_IsPaneVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::IsPaneVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_IsPaneVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::SelectionFollowsFocus() const
    {
        Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_SelectionFollowsFocus(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::SelectionFollowsFocus(Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_SelectionFollowsFocus(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::NavigationViewTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ShoulderNavigationEnabled() const
    {
        Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_ShoulderNavigationEnabled(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ShoulderNavigationEnabled(Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_ShoulderNavigationEnabled(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::OverflowLabelMode() const
    {
        Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_OverflowLabelMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::OverflowLabelMode(Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_OverflowLabelMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewDisplayModeChangedEventArgs<D>::DisplayMode() const
    {
        Windows::UI::Xaml::Controls::NavigationViewDisplayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs)->get_DisplayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::NavigationView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::Icon() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem)->get_Icon(&value));
        return Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem)->put_Icon(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::CompactPaneLength() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem)->get_CompactPaneLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem2<D>::SelectsOnInvoked() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem2)->get_SelectsOnInvoked(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem2<D>::SelectsOnInvoked(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem2)->put_SelectsOnInvoked(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::NavigationViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemHeaderFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::NavigationViewItemHeader{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs<D>::InvokedItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs)->get_InvokedItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs<D>::IsSettingsInvoked() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs)->get_IsSettingsInvoked(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs2<D>::InvokedItemContainer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2)->get_InvokedItemContainer(&value));
        return Windows::UI::Xaml::Controls::NavigationViewItemBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs2<D>::RecommendedNavigationTransitionInfo() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2)->get_RecommendedNavigationTransitionInfo(&value));
        return Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemSeparatorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::NavigationViewItemSeparator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics<D>::IconProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemStatics)->get_IconProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics<D>::CompactPaneLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemStatics)->get_CompactPaneLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics2<D>::SelectsOnInvokedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemStatics2)->get_SelectsOnInvokedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewListFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewListFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::NavigationViewList{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewPaneClosingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewPaneClosingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs<D>::SelectedItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs)->get_SelectedItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs<D>::IsSettingsSelected() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs)->get_IsSettingsSelected(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs2<D>::SelectedItemContainer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2)->get_SelectedItemContainer(&value));
        return Windows::UI::Xaml::Controls::NavigationViewItemBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs2<D>::RecommendedNavigationTransitionInfo() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2)->get_RecommendedNavigationTransitionInfo(&value));
        return Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsPaneOpenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_IsPaneOpenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::CompactModeThresholdWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_CompactModeThresholdWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::ExpandedModeThresholdWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_ExpandedModeThresholdWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::PaneFooterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_PaneFooterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::DisplayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_DisplayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsSettingsVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_IsSettingsVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsPaneToggleButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_IsPaneToggleButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::AlwaysShowHeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_AlwaysShowHeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::CompactPaneLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_CompactPaneLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::OpenPaneLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_OpenPaneLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::PaneToggleButtonStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_PaneToggleButtonStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemsSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemsSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::SelectedItemProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_SelectedItemProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::SettingsItemProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_SettingsItemProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::AutoSuggestBoxProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_AutoSuggestBoxProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemTemplateSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemTemplateSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemContainerStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemContainerStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemContainerStyleSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemContainerStyleSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::IsBackButtonVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics2)->get_IsBackButtonVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::IsBackEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics2)->get_IsBackEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::PaneTitleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics2)->get_PaneTitleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneDisplayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_PaneDisplayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneHeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_PaneHeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneCustomContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_PaneCustomContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::ContentOverlayProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_ContentOverlayProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::IsPaneVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_IsPaneVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::SelectionFollowsFocusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_SelectionFollowsFocusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::TemplateSettingsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_TemplateSettingsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::ShoulderNavigationEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_ShoulderNavigationEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::OverflowLabelModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_OverflowLabelModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::TopPadding() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_TopPadding(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::OverflowButtonVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_OverflowButtonVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::PaneToggleButtonVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_PaneToggleButtonVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::BackButtonVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_BackButtonVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::TopPaneVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_TopPaneVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::LeftPaneVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_LeftPaneVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::SingleSelectionFollowsFocus() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_SingleSelectionFollowsFocus(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::NavigationViewTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::TopPaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_TopPaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::OverflowButtonVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_OverflowButtonVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::PaneToggleButtonVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_PaneToggleButtonVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::BackButtonVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_BackButtonVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::TopPaneVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_TopPaneVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::LeftPaneVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_LeftPaneVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::SingleSelectionFollowsFocusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_SingleSelectionFollowsFocusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INotifyEventArgs<D>::Value() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INotifyEventArgs)->get_Value(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INotifyEventArgs2<D>::CallingUri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::INotifyEventArgs2)->get_CallingUri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::Frame() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPage)->get_Frame(&value));
        return Windows::UI::Xaml::Controls::Frame{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::NavigationCacheMode() const
    {
        Windows::UI::Xaml::Navigation::NavigationCacheMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPage)->get_NavigationCacheMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::NavigationCacheMode(Windows::UI::Xaml::Navigation::NavigationCacheMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPage)->put_NavigationCacheMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::TopAppBar() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPage)->get_TopAppBar(&value));
        return Windows::UI::Xaml::Controls::AppBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::TopAppBar(Windows::UI::Xaml::Controls::AppBar const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPage)->put_TopAppBar(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::BottomAppBar() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPage)->get_BottomAppBar(&value));
        return Windows::UI::Xaml::Controls::AppBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::BottomAppBar(Windows::UI::Xaml::Controls::AppBar const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPage)->put_BottomAppBar(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPageFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Page{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPageOverrides)->OnNavigatedFrom(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPageOverrides)->OnNavigatedTo(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatingFrom(Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPageOverrides)->OnNavigatingFrom(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageStatics<D>::FrameProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPageStatics)->get_FrameProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageStatics<D>::TopAppBarProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPageStatics)->get_TopAppBarProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageStatics<D>::BottomAppBarProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPageStatics)->get_BottomAppBarProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::Children() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanel)->get_Children(&value));
        return Windows::UI::Xaml::Controls::UIElementCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::Background() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanel)->get_Background(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanel)->put_Background(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::IsItemsHost() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanel)->get_IsItemsHost(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::ChildrenTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanel)->get_ChildrenTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::ChildrenTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanel)->put_ChildrenTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel2<D>::BackgroundTransition() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanel2)->get_BackgroundTransition(&value));
        return Windows::UI::Xaml::BrushTransition{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel2<D>::BackgroundTransition(Windows::UI::Xaml::BrushTransition const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanel2)->put_BackgroundTransition(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanelFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Panel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::BackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanelStatics)->get_BackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::IsItemsHostProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanelStatics)->get_IsItemsHostProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::ChildrenTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPanelStatics)->get_ChildrenTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Child() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_Child(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Child(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_Child(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalShift() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_HorizontalShift(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalShift(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_HorizontalShift(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceEndOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_HorizontalSourceEndOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceEndOffset(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_HorizontalSourceEndOffset(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceOffsetKind() const
    {
        Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_HorizontalSourceOffsetKind(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_HorizontalSourceOffsetKind(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceStartOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_HorizontalSourceStartOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceStartOffset(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_HorizontalSourceStartOffset(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsHorizontalShiftClamped() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_IsHorizontalShiftClamped(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsHorizontalShiftClamped(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_IsHorizontalShiftClamped(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsVerticalShiftClamped() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_IsVerticalShiftClamped(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsVerticalShiftClamped(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_IsVerticalShiftClamped(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxHorizontalShiftRatio() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_MaxHorizontalShiftRatio(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxHorizontalShiftRatio(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_MaxHorizontalShiftRatio(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxVerticalShiftRatio() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_MaxVerticalShiftRatio(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxVerticalShiftRatio(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_MaxVerticalShiftRatio(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Source() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_Source(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Source(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_Source(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalShift() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_VerticalShift(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalShift(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_VerticalShift(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceEndOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_VerticalSourceEndOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceEndOffset(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_VerticalSourceEndOffset(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceOffsetKind() const
    {
        Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_VerticalSourceOffsetKind(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_VerticalSourceOffsetKind(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceStartOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_VerticalSourceStartOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceStartOffset(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_VerticalSourceStartOffset(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::RefreshAutomaticHorizontalOffsets() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->RefreshAutomaticHorizontalOffsets());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::RefreshAutomaticVerticalOffsets() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->RefreshAutomaticVerticalOffsets());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ParallaxView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::ChildProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_ChildProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceEndOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_HorizontalSourceEndOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceOffsetKindProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_HorizontalSourceOffsetKindProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceStartOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_HorizontalSourceStartOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::MaxHorizontalShiftRatioProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_MaxHorizontalShiftRatioProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalShiftProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_HorizontalShiftProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::IsHorizontalShiftClampedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_IsHorizontalShiftClampedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::IsVerticalShiftClampedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_IsVerticalShiftClampedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::SourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_SourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceEndOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_VerticalSourceEndOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceOffsetKindProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_VerticalSourceOffsetKindProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceStartOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_VerticalSourceStartOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::MaxVerticalShiftRatioProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_MaxVerticalShiftRatioProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalShiftProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_VerticalShiftProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::Password() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->get_Password(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::Password(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->put_Password(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChar() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->get_PasswordChar(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChar(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->put_PasswordChar(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::IsPasswordRevealButtonEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->get_IsPasswordRevealButtonEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::IsPasswordRevealButtonEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->put_IsPasswordRevealButtonEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::MaxLength() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->get_MaxLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::MaxLength(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->put_MaxLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->add_PasswordChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged_revoker consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, PasswordChanged_revoker>(this, PasswordChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->remove_PasswordChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening_revoker consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->remove_ContextMenuOpening(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::SelectAll() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->SelectAll());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PlaceholderText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_PlaceholderText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PlaceholderText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_PlaceholderText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::SelectionHighlightColor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_SelectionHighlightColor(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_SelectionHighlightColor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->add_Paste(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste_revoker consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(auto_revoke_t, Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Paste_revoker>(this, Paste(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->remove_Paste(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::PasswordRevealMode() const
    {
        Windows::UI::Xaml::Controls::PasswordRevealMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->get_PasswordRevealMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::PasswordRevealMode(Windows::UI::Xaml::Controls::PasswordRevealMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->put_PasswordRevealMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::TextReadingOrder() const
    {
        Windows::UI::Xaml::TextReadingOrder value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->get_TextReadingOrder(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->put_TextReadingOrder(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::InputScope() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->get_InputScope(&value));
        return Windows::UI::Xaml::Input::InputScope{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::InputScope(Windows::UI::Xaml::Input::InputScope const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->put_InputScope(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PasswordBox, Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox4)->add_PasswordChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging_revoker consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PasswordBox, Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PasswordChanging_revoker>(this, PasswordChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox4)->remove_PasswordChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::CanPasteClipboardContent() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->get_CanPasteClipboardContent(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::SelectionFlyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->get_SelectionFlyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->put_SelectionFlyout(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::Description() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->get_Description(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::Description(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->put_Description(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::PasteFromClipboard() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->PasteFromClipboard());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxPasswordChangingEventArgs<D>::IsContentChanging() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs)->get_IsContentChanging(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::PasswordProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics)->get_PasswordProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::PasswordCharProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics)->get_PasswordCharProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::IsPasswordRevealButtonEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics)->get_IsPasswordRevealButtonEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::MaxLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics)->get_MaxLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::PlaceholderTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_PlaceholderTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_SelectionHighlightColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::PasswordRevealModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics3)->get_PasswordRevealModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::TextReadingOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics3)->get_TextReadingOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::InputScopeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics3)->get_InputScopeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::CanPasteClipboardContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics5)->get_CanPasteClipboardContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics5)->get_SelectionFlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::DescriptionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics5)->get_DescriptionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIcon<D>::Data() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPathIcon)->get_Data(&value));
        return Windows::UI::Xaml::Media::Geometry{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIcon<D>::Data(Windows::UI::Xaml::Media::Geometry const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPathIcon)->put_Data(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPathIconFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::PathIcon{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconSource<D>::Data() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPathIconSource)->get_Data(&value));
        return Windows::UI::Xaml::Media::Geometry{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconSource<D>::Data(Windows::UI::Xaml::Media::Geometry const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPathIconSource)->put_Data(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconSourceFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPathIconSourceFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::PathIconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconSourceStatics<D>::DataProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPathIconSourceStatics)->get_DataProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconStatics<D>::DataProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPathIconStatics)->get_DataProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeNumber() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_BadgeNumber(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeNumber(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_BadgeNumber(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeGlyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_BadgeGlyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeGlyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_BadgeGlyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeImageSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_BadgeImageSource(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeImageSource(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_BadgeImageSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_BadgeText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_BadgeText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::IsGroup() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_IsGroup(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::IsGroup(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_IsGroup(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Contact() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_Contact(&value));
        return Windows::ApplicationModel::Contacts::Contact{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Contact(Windows::ApplicationModel::Contacts::Contact const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_Contact(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::DisplayName() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_DisplayName(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::DisplayName(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_DisplayName(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Initials() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_Initials(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Initials(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_Initials(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::PreferSmallImage() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_PreferSmallImage(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::PreferSmallImage(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_PreferSmallImage(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::ProfilePicture() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_ProfilePicture(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::ProfilePicture(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_ProfilePicture(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::PersonPicture{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeNumberProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_BadgeNumberProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeGlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_BadgeGlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeImageSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_BadgeImageSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_BadgeTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::IsGroupProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_IsGroupProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::ContactProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_ContactProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::DisplayNameProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_DisplayNameProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::InitialsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_InitialsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::PreferSmallImageProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_PreferSmallImageProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::ProfilePictureProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_ProfilePictureProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Content() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->get_Content(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Content(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->put_Content(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ConfirmationButtonsVisible() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->get_ConfirmationButtonsVisible(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ConfirmationButtonsVisible(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->put_ConfirmationButtonsVisible(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PickerFlyout, Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->add_Confirmed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed_revoker consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PickerFlyout, Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Confirmed_revoker>(this, Confirmed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->remove_Confirmed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ShowAtAsync(Windows::UI::Xaml::FrameworkElement const& target) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->ShowAtAsync(*(void**)(&target), &operation));
        return Windows::Foundation::IAsyncOperation<bool>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyoutStatics<D>::ContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyoutStatics)->get_ContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyoutStatics<D>::ConfirmationButtonsVisibleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPickerFlyoutStatics)->get_ConfirmationButtonsVisibleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::Title() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_Title(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::Title(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_Title(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::TitleTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_TitleTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::TitleTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_TitleTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_SelectedIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedIndex(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_SelectedIndex(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_SelectedItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedItem(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_SelectedItem(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::IsLocked() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_IsLocked(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::IsLocked(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_IsLocked(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(Windows::UI::Xaml::Controls::SelectionChangedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged_revoker consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::Controls::SelectionChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_SelectionChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemLoading(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading_revoker consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PivotItemLoading_revoker>(this, PivotItemLoading(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemLoading(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemLoaded(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded_revoker consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PivotItemLoaded_revoker>(this, PivotItemLoaded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemLoaded(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemUnloading(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading_revoker consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PivotItemUnloading_revoker>(this, PivotItemUnloading(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemUnloading(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemUnloaded(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded_revoker consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PivotItemUnloaded_revoker>(this, PivotItemUnloaded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemUnloaded(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeader() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot2)->get_LeftHeader(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeader(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot2)->put_LeftHeader(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot2)->get_LeftHeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot2)->put_LeftHeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeader() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot2)->get_RightHeader(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeader(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot2)->put_RightHeader(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot2)->get_RightHeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot2)->put_RightHeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot3<D>::HeaderFocusVisualPlacement() const
    {
        Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot3)->get_HeaderFocusVisualPlacement(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot3<D>::HeaderFocusVisualPlacement(Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot3)->put_HeaderFocusVisualPlacement(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot3<D>::IsHeaderItemsCarouselEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot3)->get_IsHeaderItemsCarouselEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot3<D>::IsHeaderItemsCarouselEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivot3)->put_IsHeaderItemsCarouselEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Pivot{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItem<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotItem)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItem<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotItem)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItemEventArgs<D>::Item() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotItemEventArgs)->get_Item(&value));
        return Windows::UI::Xaml::Controls::PivotItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItemEventArgs<D>::Item(Windows::UI::Xaml::Controls::PivotItem const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotItemEventArgs)->put_Item(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::PivotItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItemStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotItemStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::TitleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_TitleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::TitleTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_TitleTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SelectedIndexProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_SelectedIndexProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SelectedItemProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_SelectedItemProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::IsLockedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_IsLockedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SlideInAnimationGroupProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_SlideInAnimationGroupProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::GetSlideInAnimationGroup(Windows::UI::Xaml::FrameworkElement const& element) const
    {
        Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->GetSlideInAnimationGroup(*(void**)(&element), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SetSlideInAnimationGroup(Windows::UI::Xaml::FrameworkElement const& element, Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->SetSlideInAnimationGroup(*(void**)(&element), static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::LeftHeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics2)->get_LeftHeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::LeftHeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics2)->get_LeftHeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::RightHeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics2)->get_RightHeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::RightHeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics2)->get_RightHeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics3<D>::HeaderFocusVisualPlacementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics3)->get_HeaderFocusVisualPlacementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics3<D>::IsHeaderItemsCarouselEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IPivotStatics3)->get_IsHeaderItemsCarouselEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::IsIndeterminate() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->get_IsIndeterminate(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::IsIndeterminate(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->put_IsIndeterminate(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowError() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->get_ShowError(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowError(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->put_ShowError(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowPaused() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->get_ShowPaused(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowPaused(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->put_ShowPaused(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBarFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ProgressBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::IsIndeterminateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBarStatics)->get_IsIndeterminateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::ShowErrorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBarStatics)->get_ShowErrorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::ShowPausedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressBarStatics)->get_ShowPausedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressRing<D>::IsActive() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressRing)->get_IsActive(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressRing<D>::IsActive(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressRing)->put_IsActive(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressRing<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressRing)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressRingStatics<D>::IsActiveProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IProgressRingStatics)->get_IsActiveProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRadioButton<D>::GroupName() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRadioButton)->get_GroupName(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRadioButton<D>::GroupName(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRadioButton)->put_GroupName(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRadioButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRadioButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RadioButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRadioButtonStatics<D>::GroupNameProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRadioButtonStatics)->get_GroupNameProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Caption() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_Caption(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Caption(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_Caption(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::InitialSetValue() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_InitialSetValue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::InitialSetValue(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_InitialSetValue(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsClearEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_IsClearEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsClearEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_IsClearEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsReadOnly() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_IsReadOnly(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsReadOnly(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_IsReadOnly(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::MaxRating() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_MaxRating(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::MaxRating(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_MaxRating(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::PlaceholderValue() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_PlaceholderValue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::PlaceholderValue(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_PlaceholderValue(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ItemInfo() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_ItemInfo(&value));
        return Windows::UI::Xaml::Controls::RatingItemInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ItemInfo(Windows::UI::Xaml::Controls::RatingItemInfo const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_ItemInfo(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Value() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_Value(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Value(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_Value(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RatingControl, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->add_ValueChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged_revoker consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RatingControl, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, ValueChanged_revoker>(this, ValueChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->remove_ValueChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RatingControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::CaptionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_CaptionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::InitialSetValueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_InitialSetValueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::IsClearEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_IsClearEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::IsReadOnlyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_IsReadOnlyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::MaxRatingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_MaxRatingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::PlaceholderValueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_PlaceholderValueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::ItemInfoProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_ItemInfoProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::ValueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_ValueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::DisabledGlyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_DisabledGlyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::DisabledGlyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_DisabledGlyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::Glyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_Glyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::Glyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_Glyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverGlyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_PointerOverGlyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverGlyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_PointerOverGlyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverPlaceholderGlyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_PointerOverPlaceholderGlyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverPlaceholderGlyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_PointerOverPlaceholderGlyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PlaceholderGlyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_PlaceholderGlyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PlaceholderGlyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_PlaceholderGlyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::UnsetGlyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_UnsetGlyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::UnsetGlyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_UnsetGlyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RatingItemFontInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::DisabledGlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_DisabledGlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::GlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_GlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PlaceholderGlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_PlaceholderGlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PointerOverGlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_PointerOverGlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PointerOverPlaceholderGlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_PointerOverPlaceholderGlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::UnsetGlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_UnsetGlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::DisabledImage() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_DisabledImage(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::DisabledImage(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_DisabledImage(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::Image() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_Image(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::Image(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_Image(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PlaceholderImage() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_PlaceholderImage(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PlaceholderImage(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_PlaceholderImage(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverImage() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_PointerOverImage(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverImage(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_PointerOverImage(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverPlaceholderImage() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_PointerOverPlaceholderImage(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverPlaceholderImage(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_PointerOverPlaceholderImage(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::UnsetImage() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_UnsetImage(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::UnsetImage(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_UnsetImage(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RatingItemImageInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::DisabledImageProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_DisabledImageProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::ImageProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_ImageProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PlaceholderImageProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_PlaceholderImageProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PointerOverImageProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_PointerOverImageProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PointerOverPlaceholderImageProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_PointerOverPlaceholderImageProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::UnsetImageProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_UnsetImageProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemInfoFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRatingItemInfoFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RatingItemInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::Visualizer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->get_Visualizer(&value));
        return Windows::UI::Xaml::Controls::RefreshVisualizer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::Visualizer(Windows::UI::Xaml::Controls::RefreshVisualizer const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->put_Visualizer(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::PullDirection() const
    {
        Windows::UI::Xaml::Controls::RefreshPullDirection value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->get_PullDirection(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::PullDirection(Windows::UI::Xaml::Controls::RefreshPullDirection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->put_PullDirection(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshContainer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->add_RefreshRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested_revoker consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshContainer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, RefreshRequested_revoker>(this, RefreshRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->remove_RefreshRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RequestRefresh() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->RequestRefresh());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainerFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RefreshContainer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainerStatics<D>::VisualizerProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainerStatics)->get_VisualizerProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainerStatics<D>::PullDirectionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshContainerStatics)->get_PullDirectionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshInteractionRatioChangedEventArgs<D>::InteractionRatio() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs)->get_InteractionRatio(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshRequestedEventArgs<D>::GetDeferral() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs)->GetDeferral(&result));
        return Windows::Foundation::Deferral{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshStateChangedEventArgs<D>::OldState() const
    {
        Windows::UI::Xaml::Controls::RefreshVisualizerState value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs)->get_OldState(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshStateChangedEventArgs<D>::NewState() const
    {
        Windows::UI::Xaml::Controls::RefreshVisualizerState value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs)->get_NewState(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RequestRefresh() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->RequestRefresh());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::RefreshVisualizerOrientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Orientation(Windows::UI::Xaml::Controls::RefreshVisualizerOrientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Content() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->get_Content(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Content(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->put_Content(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::State() const
    {
        Windows::UI::Xaml::Controls::RefreshVisualizerState value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->get_State(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->add_RefreshRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested_revoker consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, RefreshRequested_revoker>(this, RefreshRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->remove_RefreshRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->add_RefreshStateChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged_revoker consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, RefreshStateChanged_revoker>(this, RefreshStateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->remove_RefreshStateChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RefreshVisualizer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::InfoProviderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerStatics)->get_InfoProviderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::ContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerStatics)->get_ContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::StateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerStatics)->get_StateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->get_BorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->put_BorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderThickness() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->get_BorderThickness(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->put_BorderThickness(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::CornerRadius() const
    {
        Windows::UI::Xaml::CornerRadius value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->get_CornerRadius(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->put_CornerRadius(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel2<D>::BackgroundSizing() const
    {
        Windows::UI::Xaml::Controls::BackgroundSizing value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel2)->get_BackgroundSizing(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel2<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanel2)->put_BackgroundSizing(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RelativePanel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::LeftOfProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_LeftOfProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetLeftOf(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetLeftOf(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetLeftOf(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetLeftOf(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AboveProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AboveProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAbove(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAbove(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAbove(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAbove(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::RightOfProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_RightOfProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetRightOf(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetRightOf(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetRightOf(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetRightOf(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BelowProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_BelowProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetBelow(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetBelow(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetBelow(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetBelow(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignHorizontalCenterWithProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignHorizontalCenterWithProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignHorizontalCenterWith(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignHorizontalCenterWith(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignHorizontalCenterWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignHorizontalCenterWith(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignVerticalCenterWithProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignVerticalCenterWithProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignVerticalCenterWith(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignVerticalCenterWith(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignVerticalCenterWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignVerticalCenterWith(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignLeftWithProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignLeftWithProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignLeftWith(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignLeftWith(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignLeftWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignLeftWith(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignTopWithProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignTopWithProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignTopWith(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignTopWith(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignTopWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignTopWith(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignRightWithProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignRightWithProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignRightWith(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignRightWith(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignRightWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignRightWith(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignBottomWithProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignBottomWithProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignBottomWith(Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignBottomWith(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignBottomWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignBottomWith(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignLeftWithPanelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignLeftWithPanelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignLeftWithPanel(Windows::UI::Xaml::UIElement const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignLeftWithPanel(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignLeftWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignLeftWithPanel(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignTopWithPanelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignTopWithPanelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignTopWithPanel(Windows::UI::Xaml::UIElement const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignTopWithPanel(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignTopWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignTopWithPanel(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignRightWithPanelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignRightWithPanelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignRightWithPanel(Windows::UI::Xaml::UIElement const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignRightWithPanel(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignRightWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignRightWithPanel(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignBottomWithPanelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignBottomWithPanelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignBottomWithPanel(Windows::UI::Xaml::UIElement const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignBottomWithPanel(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignBottomWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignBottomWithPanel(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignHorizontalCenterWithPanelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignHorizontalCenterWithPanelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignHorizontalCenterWithPanel(Windows::UI::Xaml::UIElement const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignHorizontalCenterWithPanel(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignHorizontalCenterWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignHorizontalCenterWithPanel(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignVerticalCenterWithPanelProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignVerticalCenterWithPanelProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignVerticalCenterWithPanel(Windows::UI::Xaml::UIElement const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignVerticalCenterWithPanel(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignVerticalCenterWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignVerticalCenterWithPanel(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_BorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BorderThicknessProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_BorderThicknessProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::CornerRadiusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_CornerRadiusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics2<D>::BackgroundSizingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics2)->get_BackgroundSizingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsReadOnly() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_IsReadOnly(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsReadOnly(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_IsReadOnly(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::AcceptsReturn() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_AcceptsReturn(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::AcceptsReturn(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_AcceptsReturn(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextAlignment() const
    {
        Windows::UI::Xaml::TextAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_TextAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_TextAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextWrapping() const
    {
        Windows::UI::Xaml::TextWrapping value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_TextWrapping(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_TextWrapping(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsSpellCheckEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_IsSpellCheckEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsSpellCheckEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_IsSpellCheckEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsTextPredictionEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_IsTextPredictionEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsTextPredictionEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_IsTextPredictionEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::Document() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_Document(&value));
        return Windows::UI::Text::ITextDocument{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::InputScope() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_InputScope(&value));
        return Windows::UI::Xaml::Input::InputScope{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::InputScope(Windows::UI::Xaml::Input::InputScope const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_InputScope(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_TextChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, TextChanged_revoker>(this, TextChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->remove_TextChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->remove_SelectionChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->remove_ContextMenuOpening(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PlaceholderText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_PlaceholderText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PlaceholderText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_PlaceholderText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::SelectionHighlightColor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_SelectionHighlightColor(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_SelectionHighlightColor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::IsColorFontEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_IsColorFontEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::IsColorFontEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_IsColorFontEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->add_Paste(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(auto_revoke_t, Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Paste_revoker>(this, Paste(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->remove_Paste(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionStarted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionStarted_revoker>(this, TextCompositionStarted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextCompositionStarted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionChanged_revoker>(this, TextCompositionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextCompositionChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionEnded(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionEnded_revoker>(this, TextCompositionEnded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextCompositionEnded(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextReadingOrder() const
    {
        Windows::UI::Xaml::TextReadingOrder value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->get_TextReadingOrder(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->put_TextReadingOrder(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::DesiredCandidateWindowAlignment() const
    {
        Windows::UI::Xaml::Controls::CandidateWindowAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->get_DesiredCandidateWindowAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->put_DesiredCandidateWindowAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_CandidateWindowBoundsChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CandidateWindowBoundsChanged_revoker>(this, CandidateWindowBoundsChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_CandidateWindowBoundsChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextChanging_revoker>(this, TextChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::GetLinguisticAlternativesAsync() const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox4)->GetLinguisticAlternativesAsync(&operation));
        return Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::ClipboardCopyFormat() const
    {
        Windows::UI::Xaml::Controls::RichEditClipboardFormat value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox4)->get_ClipboardCopyFormat(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::ClipboardCopyFormat(Windows::UI::Xaml::Controls::RichEditClipboardFormat const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox4)->put_ClipboardCopyFormat(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::SelectionHighlightColorWhenNotFocused() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox5)->get_SelectionHighlightColorWhenNotFocused(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::SelectionHighlightColorWhenNotFocused(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox5)->put_SelectionHighlightColorWhenNotFocused(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::MaxLength() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox5)->get_MaxLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::MaxLength(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox5)->put_MaxLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::HorizontalTextAlignment() const
    {
        Windows::UI::Xaml::TextAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->get_HorizontalTextAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CharacterCasing() const
    {
        Windows::UI::Xaml::Controls::CharacterCasing value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->get_CharacterCasing(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->put_CharacterCasing(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::DisabledFormattingAccelerators() const
    {
        Windows::UI::Xaml::Controls::DisabledFormattingAccelerators value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->get_DisabledFormattingAccelerators(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::DisabledFormattingAccelerators(Windows::UI::Xaml::Controls::DisabledFormattingAccelerators const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->put_DisabledFormattingAccelerators(static_cast<uint32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->add_CopyingToClipboard(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CopyingToClipboard_revoker>(this, CopyingToClipboard(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->remove_CopyingToClipboard(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->add_CuttingToClipboard(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CuttingToClipboard_revoker>(this, CuttingToClipboard(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->remove_CuttingToClipboard(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkForegroundColor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_ContentLinkForegroundColor(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkForegroundColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_ContentLinkForegroundColor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkBackgroundColor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_ContentLinkBackgroundColor(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkBackgroundColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_ContentLinkBackgroundColor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkProviders() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_ContentLinkProviders(&value));
        return Windows::UI::Xaml::Documents::ContentLinkProviderCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkProviders(Windows::UI::Xaml::Documents::ContentLinkProviderCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_ContentLinkProviders(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::HandwritingView() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_HandwritingView(&value));
        return Windows::UI::Xaml::Controls::HandwritingView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::HandwritingView(Windows::UI::Xaml::Controls::HandwritingView const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_HandwritingView(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::IsHandwritingViewEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_IsHandwritingViewEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::IsHandwritingViewEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_IsHandwritingViewEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->add_ContentLinkChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ContentLinkChanged_revoker>(this, ContentLinkChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->remove_ContentLinkChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->add_ContentLinkInvoked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ContentLinkInvoked_revoker>(this, ContentLinkInvoked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->remove_ContentLinkInvoked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::TextDocument() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->get_TextDocument(&value));
        return Windows::UI::Text::RichEditTextDocument{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionFlyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->get_SelectionFlyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->put_SelectionFlyout(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::ProofingMenuFlyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->get_ProofingMenuFlyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::Description() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->get_Description(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::Description(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->put_Description(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->add_SelectionChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionChanging_revoker consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanging_revoker>(this, SelectionChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->remove_SelectionChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::RichEditBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::SelectionStart() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs)->get_SelectionStart(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::SelectionLength() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs)->get_SelectionLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsReadOnlyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_IsReadOnlyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::AcceptsReturnProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_AcceptsReturnProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::TextAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_TextAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::TextWrappingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_TextWrappingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsSpellCheckEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_IsSpellCheckEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsTextPredictionEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_IsTextPredictionEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::InputScopeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_InputScopeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::PlaceholderTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_PlaceholderTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_SelectionHighlightColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::IsColorFontEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_IsColorFontEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics3<D>::DesiredCandidateWindowAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics3)->get_DesiredCandidateWindowAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics3<D>::TextReadingOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics3)->get_TextReadingOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics4<D>::ClipboardCopyFormatProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics4)->get_ClipboardCopyFormatProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics5<D>::SelectionHighlightColorWhenNotFocusedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics5)->get_SelectionHighlightColorWhenNotFocusedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics5<D>::MaxLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics5)->get_MaxLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::HorizontalTextAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics6)->get_HorizontalTextAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::CharacterCasingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics6)->get_CharacterCasingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::DisabledFormattingAcceleratorsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics6)->get_DisabledFormattingAcceleratorsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkForegroundColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_ContentLinkForegroundColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkBackgroundColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_ContentLinkBackgroundColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkProvidersProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_ContentLinkProvidersProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::HandwritingViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_HandwritingViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::IsHandwritingViewEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_IsHandwritingViewEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics8)->get_SelectionFlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::ProofingMenuFlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics8)->get_ProofingMenuFlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::DescriptionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics8)->get_DescriptionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxTextChangingEventArgs2<D>::IsContentChanging() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2)->get_IsContentChanging(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStretch() const
    {
        Windows::UI::Text::FontStretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontStretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStretch(Windows::UI::Text::FontStretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontStretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Foreground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_Foreground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_Foreground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextWrapping() const
    {
        Windows::UI::Xaml::TextWrapping value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_TextWrapping(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_TextWrapping(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextTrimming() const
    {
        Windows::UI::Xaml::TextTrimming value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_TextTrimming(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextTrimming(Windows::UI::Xaml::TextTrimming const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_TextTrimming(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextAlignment() const
    {
        Windows::UI::Xaml::TextAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_TextAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_TextAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Blocks() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_Blocks(&value));
        return Windows::UI::Xaml::Documents::BlockCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_LineHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_LineHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineStackingStrategy() const
    {
        Windows::UI::Xaml::LineStackingStrategy value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_LineStackingStrategy(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_LineStackingStrategy(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::CharacterSpacing() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_CharacterSpacing(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::CharacterSpacing(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_CharacterSpacing(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::OverflowContentTarget() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_OverflowContentTarget(&value));
        return Windows::UI::Xaml::Controls::RichTextBlockOverflow{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::OverflowContentTarget(Windows::UI::Xaml::Controls::RichTextBlockOverflow const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_OverflowContentTarget(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::IsTextSelectionEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_IsTextSelectionEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::IsTextSelectionEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_IsTextSelectionEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::HasOverflowContent() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_HasOverflowContent(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectedText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_SelectedText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContentStart() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_ContentStart(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContentEnd() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_ContentEnd(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionStart() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_SelectionStart(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionEnd() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_SelectionEnd(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::BaselineOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_BaselineOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged_revoker consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->remove_SelectionChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening_revoker consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->remove_ContextMenuOpening(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectAll() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->SelectAll());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Select(Windows::UI::Xaml::Documents::TextPointer const& start, Windows::UI::Xaml::Documents::TextPointer const& end) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->Select(*(void**)(&start), *(void**)(&end)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::GetPositionFromPoint(Windows::Foundation::Point const& point) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->GetPositionFromPoint(impl::bind_in(point), &result));
        return Windows::UI::Xaml::Documents::TextPointer{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->Focus(static_cast<int32_t>(value), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextIndent() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_TextIndent(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextIndent(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_TextIndent(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::MaxLines() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_MaxLines(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::MaxLines(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_MaxLines(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextLineBounds() const
    {
        Windows::UI::Xaml::TextLineBounds value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_TextLineBounds(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextLineBounds(Windows::UI::Xaml::TextLineBounds const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_TextLineBounds(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::SelectionHighlightColor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_SelectionHighlightColor(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_SelectionHighlightColor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::OpticalMarginAlignment() const
    {
        Windows::UI::Xaml::OpticalMarginAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_OpticalMarginAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::IsColorFontEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_IsColorFontEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::IsColorFontEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_IsColorFontEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextReadingOrder() const
    {
        Windows::UI::Xaml::TextReadingOrder value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_TextReadingOrder(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_TextReadingOrder(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock3<D>::IsTextScaleFactorEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock3)->get_IsTextScaleFactorEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock3<D>::IsTextScaleFactorEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock3)->put_IsTextScaleFactorEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock4<D>::TextDecorations() const
    {
        Windows::UI::Text::TextDecorations value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock4)->get_TextDecorations(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock4<D>::TextDecorations(Windows::UI::Text::TextDecorations const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock4)->put_TextDecorations(static_cast<uint32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmed() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->get_IsTextTrimmed(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::HorizontalTextAlignment() const
    {
        Windows::UI::Xaml::TextAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->get_HorizontalTextAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::TextHighlighters() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->get_TextHighlighters(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged_revoker consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsTextTrimmedChanged_revoker>(this, IsTextTrimmedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->remove_IsTextTrimmedChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::SelectionFlyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock6)->get_SelectionFlyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock6)->put_SelectionFlyout(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::CopySelectionToClipboard() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock6)->CopySelectionToClipboard());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::OverflowContentTarget() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_OverflowContentTarget(&value));
        return Windows::UI::Xaml::Controls::RichTextBlockOverflow{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::OverflowContentTarget(Windows::UI::Xaml::Controls::RichTextBlockOverflow const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->put_OverflowContentTarget(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_ContentSource(&value));
        return Windows::UI::Xaml::Controls::RichTextBlock{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::HasOverflowContent() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_HasOverflowContent(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentStart() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_ContentStart(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentEnd() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_ContentEnd(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::BaselineOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_BaselineOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::GetPositionFromPoint(Windows::Foundation::Point const& point) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->GetPositionFromPoint(impl::bind_in(point), &result));
        return Windows::UI::Xaml::Documents::TextPointer{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->Focus(static_cast<int32_t>(value), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow2<D>::MaxLines() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow2)->get_MaxLines(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow2<D>::MaxLines(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow2)->put_MaxLines(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmed() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow3)->get_IsTextTrimmed(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlockOverflow, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow3)->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged_revoker consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlockOverflow, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsTextTrimmedChanged_revoker>(this, IsTextTrimmedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow3)->remove_IsTextTrimmedChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::OverflowContentTargetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics)->get_OverflowContentTargetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::HasOverflowContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics)->get_HasOverflowContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics2<D>::MaxLinesProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2)->get_MaxLinesProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics3<D>::IsTextTrimmedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3)->get_IsTextTrimmedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontStretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontStretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::ForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_ForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextWrappingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_TextWrappingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextTrimmingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_TextTrimmingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_TextAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::LineHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_LineHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::LineStackingStrategyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_LineStackingStrategyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::CharacterSpacingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_CharacterSpacingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::OverflowContentTargetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_OverflowContentTargetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::IsTextSelectionEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_IsTextSelectionEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::HasOverflowContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_HasOverflowContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::SelectedTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_SelectedTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextIndentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_TextIndentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::MaxLinesProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_MaxLinesProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::TextLineBoundsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_TextLineBoundsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_SelectionHighlightColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::OpticalMarginAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_OpticalMarginAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::IsColorFontEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_IsColorFontEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::TextReadingOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_TextReadingOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics3<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics3)->get_IsTextScaleFactorEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics4<D>::TextDecorationsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics4)->get_TextDecorationsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics5<D>::IsTextTrimmedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics5)->get_IsTextTrimmedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics5<D>::HorizontalTextAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics5)->get_HorizontalTextAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics6<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics6)->get_SelectionFlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::Height() const
    {
        Windows::UI::Xaml::GridLength value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->get_Height(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::Height(Windows::UI::Xaml::GridLength const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->put_Height(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MaxHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->get_MaxHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MaxHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->put_MaxHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MinHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->get_MinHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MinHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->put_MinHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::ActualHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->get_ActualHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::HeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinitionStatics)->get_HeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::MaxHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinitionStatics)->get_MaxHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::MinHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IRowDefinitionStatics)->get_MinHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::CurrentAnchor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollAnchorProvider)->get_CurrentAnchor(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::RegisterAnchorCandidate(Windows::UI::Xaml::UIElement const& element) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollAnchorProvider)->RegisterAnchorCandidate(*(void**)(&element)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::UnregisterAnchorCandidate(Windows::UI::Xaml::UIElement const& element) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollAnchorProvider)->UnregisterAnchorCandidate(*(void**)(&element)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanVerticallyScroll() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_CanVerticallyScroll(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanVerticallyScroll(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->put_CanVerticallyScroll(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanHorizontallyScroll() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_CanHorizontallyScroll(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanHorizontallyScroll(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->put_CanHorizontallyScroll(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ExtentWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ExtentWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ExtentHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ExtentHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ViewportWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ViewportWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ViewportHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ViewportHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::HorizontalOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_HorizontalOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::VerticalOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_VerticalOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ScrollOwner() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ScrollOwner(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ScrollOwner(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->put_ScrollOwner(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineUp() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->LineUp());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineDown() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->LineDown());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineLeft() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->LineLeft());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineRight() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->LineRight());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageUp() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->PageUp());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageDown() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->PageDown());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageLeft() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->PageLeft());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageRight() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->PageRight());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelUp() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MouseWheelUp());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelDown() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MouseWheelDown());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelLeft() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MouseWheelLeft());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelRight() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MouseWheelRight());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::SetHorizontalOffset(double offset) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->SetHorizontalOffset(offset));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::SetVerticalOffset(double offset) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->SetVerticalOffset(offset));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MakeVisible(Windows::UI::Xaml::UIElement const& visual, Windows::Foundation::Rect const& rectangle) const
    {
        Windows::Foundation::Rect result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MakeVisible(*(void**)(&visual), impl::bind_in(rectangle), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::CanContentRenderOutsideBounds() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter2)->get_CanContentRenderOutsideBounds(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::CanContentRenderOutsideBounds(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter2)->put_CanContentRenderOutsideBounds(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::SizesContentToTemplatedParent() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter2)->get_SizesContentToTemplatedParent(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::SizesContentToTemplatedParent(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter2)->put_SizesContentToTemplatedParent(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenterStatics2<D>::CanContentRenderOutsideBoundsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2)->get_CanContentRenderOutsideBoundsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenterStatics2<D>::SizesContentToTemplatedParentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2)->get_SizesContentToTemplatedParentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollBarVisibility() const
    {
        Windows::UI::Xaml::Controls::ScrollBarVisibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalScrollBarVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_HorizontalScrollBarVisibility(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollBarVisibility() const
    {
        Windows::UI::Xaml::Controls::ScrollBarVisibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalScrollBarVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_VerticalScrollBarVisibility(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalRailEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsHorizontalRailEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalRailEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsHorizontalRailEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalRailEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsVerticalRailEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalRailEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsVerticalRailEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalScrollChainingEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsHorizontalScrollChainingEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalScrollChainingEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsHorizontalScrollChainingEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalScrollChainingEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsVerticalScrollChainingEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalScrollChainingEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsVerticalScrollChainingEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomChainingEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsZoomChainingEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomChainingEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsZoomChainingEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsScrollInertiaEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsScrollInertiaEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsScrollInertiaEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsScrollInertiaEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomInertiaEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsZoomInertiaEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomInertiaEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsZoomInertiaEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollMode() const
    {
        Windows::UI::Xaml::Controls::ScrollMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalScrollMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollMode(Windows::UI::Xaml::Controls::ScrollMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_HorizontalScrollMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollMode() const
    {
        Windows::UI::Xaml::Controls::ScrollMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalScrollMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollMode(Windows::UI::Xaml::Controls::ScrollMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_VerticalScrollMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomMode() const
    {
        Windows::UI::Xaml::Controls::ZoomMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ZoomMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomMode(Windows::UI::Xaml::Controls::ZoomMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_ZoomMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsAlignment() const
    {
        Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalSnapPointsAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_HorizontalSnapPointsAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsAlignment() const
    {
        Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalSnapPointsAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_VerticalSnapPointsAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsType() const
    {
        Windows::UI::Xaml::Controls::SnapPointsType value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalSnapPointsType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_HorizontalSnapPointsType(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsType() const
    {
        Windows::UI::Xaml::Controls::SnapPointsType value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalSnapPointsType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_VerticalSnapPointsType(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPointsType() const
    {
        Windows::UI::Xaml::Controls::SnapPointsType value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ZoomSnapPointsType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_ZoomSnapPointsType(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewportWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ViewportWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollableWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ScrollableWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ComputedHorizontalScrollBarVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ComputedHorizontalScrollBarVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ExtentWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ExtentWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewportHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ViewportHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollableHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ScrollableHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ComputedVerticalScrollBarVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ComputedVerticalScrollBarVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ExtentHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ExtentHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MinZoomFactor() const
    {
        float value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_MinZoomFactor(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MinZoomFactor(float value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_MinZoomFactor(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MaxZoomFactor() const
    {
        float value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_MaxZoomFactor(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MaxZoomFactor(float value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_MaxZoomFactor(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomFactor() const
    {
        float value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ZoomFactor(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPoints() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ZoomSnapPoints(&value));
        return Windows::Foundation::Collections::IVector<float>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->add_ViewChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged_revoker consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(auto_revoke_t, Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ViewChanged_revoker>(this, ViewChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->remove_ViewChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollToHorizontalOffset(double offset) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->ScrollToHorizontalOffset(offset));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollToVerticalOffset(double offset) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->ScrollToVerticalOffset(offset));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomToFactor(float factor) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->ZoomToFactor(factor));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::InvalidateScrollInfo() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->InvalidateScrollInfo());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsDeferredScrollingEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsDeferredScrollingEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsDeferredScrollingEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsDeferredScrollingEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::BringIntoViewOnFocusChange() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_BringIntoViewOnFocusChange(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::BringIntoViewOnFocusChange(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_BringIntoViewOnFocusChange(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopLeftHeader() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->get_TopLeftHeader(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopLeftHeader(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->put_TopLeftHeader(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::LeftHeader() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->get_LeftHeader(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::LeftHeader(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->put_LeftHeader(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopHeader() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->get_TopHeader(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopHeader(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->put_TopHeader(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->add_ViewChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging_revoker consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(auto_revoke_t, Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ViewChanging_revoker>(this, ViewChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->remove_ViewChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ChangeView(Windows::Foundation::IReference<double> const& horizontalOffset, Windows::Foundation::IReference<double> const& verticalOffset, Windows::Foundation::IReference<float> const& zoomFactor) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->ChangeView(*(void**)(&horizontalOffset), *(void**)(&verticalOffset), *(void**)(&zoomFactor), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ChangeView(Windows::Foundation::IReference<double> const& horizontalOffset, Windows::Foundation::IReference<double> const& verticalOffset, Windows::Foundation::IReference<float> const& zoomFactor, bool disableAnimation) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->ChangeViewWithOptionalAnimation(*(void**)(&horizontalOffset), *(void**)(&verticalOffset), *(void**)(&zoomFactor), disableAnimation, &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->add_DirectManipulationStarted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted_revoker consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, DirectManipulationStarted_revoker>(this, DirectManipulationStarted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->remove_DirectManipulationStarted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->add_DirectManipulationCompleted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted_revoker consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, DirectManipulationCompleted_revoker>(this, DirectManipulationCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->remove_DirectManipulationCompleted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::ReduceViewportForCoreInputViewOcclusions() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->get_ReduceViewportForCoreInputViewOcclusions(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::ReduceViewportForCoreInputViewOcclusions(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->put_ReduceViewportForCoreInputViewOcclusions(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::HorizontalAnchorRatio() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->get_HorizontalAnchorRatio(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::HorizontalAnchorRatio(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->put_HorizontalAnchorRatio(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::VerticalAnchorRatio() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->get_VerticalAnchorRatio(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::VerticalAnchorRatio(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->put_VerticalAnchorRatio(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::CanContentRenderOutsideBounds() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->get_CanContentRenderOutsideBounds(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::CanContentRenderOutsideBounds(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->put_CanContentRenderOutsideBounds(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::AnchorRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ScrollViewer, Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->add_AnchorRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::AnchorRequested_revoker consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::AnchorRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ScrollViewer, Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, AnchorRequested_revoker>(this, AnchorRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::AnchorRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->remove_AnchorRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalSnapPointsAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalSnapPointsAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalSnapPointsAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalSnapPointsAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalSnapPointsTypeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalSnapPointsTypeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalSnapPointsTypeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalSnapPointsTypeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomSnapPointsTypeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ZoomSnapPointsTypeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ViewportWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ViewportWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ScrollableWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ScrollableWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ComputedHorizontalScrollBarVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ComputedHorizontalScrollBarVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ExtentWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ExtentWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ViewportHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ViewportHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ScrollableHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ScrollableHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ComputedVerticalScrollBarVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ComputedVerticalScrollBarVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ExtentHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ExtentHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::MinZoomFactorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_MinZoomFactorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::MaxZoomFactorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_MaxZoomFactorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomFactorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ZoomFactorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomSnapPointsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ZoomSnapPointsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalScrollBarVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalScrollBarVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetHorizontalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element) const
    {
        Windows::UI::Xaml::Controls::ScrollBarVisibility result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetHorizontalScrollBarVisibility(*(void**)(&element), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetHorizontalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollBarVisibility const& horizontalScrollBarVisibility) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetHorizontalScrollBarVisibility(*(void**)(&element), static_cast<int32_t>(horizontalScrollBarVisibility)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalScrollBarVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalScrollBarVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetVerticalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element) const
    {
        Windows::UI::Xaml::Controls::ScrollBarVisibility result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetVerticalScrollBarVisibility(*(void**)(&element), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetVerticalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollBarVisibility const& verticalScrollBarVisibility) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetVerticalScrollBarVisibility(*(void**)(&element), static_cast<int32_t>(verticalScrollBarVisibility)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsHorizontalRailEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsHorizontalRailEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsHorizontalRailEnabled(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsHorizontalRailEnabled(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsHorizontalRailEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalRailEnabled) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsHorizontalRailEnabled(*(void**)(&element), isHorizontalRailEnabled));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsVerticalRailEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsVerticalRailEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsVerticalRailEnabled(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsVerticalRailEnabled(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsVerticalRailEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isVerticalRailEnabled) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsVerticalRailEnabled(*(void**)(&element), isVerticalRailEnabled));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsHorizontalScrollChainingEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsHorizontalScrollChainingEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsHorizontalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsHorizontalScrollChainingEnabled(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsHorizontalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalScrollChainingEnabled) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsHorizontalScrollChainingEnabled(*(void**)(&element), isHorizontalScrollChainingEnabled));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsVerticalScrollChainingEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsVerticalScrollChainingEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsVerticalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsVerticalScrollChainingEnabled(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsVerticalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isVerticalScrollChainingEnabled) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsVerticalScrollChainingEnabled(*(void**)(&element), isVerticalScrollChainingEnabled));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsZoomChainingEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsZoomChainingEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsZoomChainingEnabled(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsZoomChainingEnabled(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsZoomChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isZoomChainingEnabled) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsZoomChainingEnabled(*(void**)(&element), isZoomChainingEnabled));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsScrollInertiaEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsScrollInertiaEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsScrollInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsScrollInertiaEnabled(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsScrollInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isScrollInertiaEnabled) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsScrollInertiaEnabled(*(void**)(&element), isScrollInertiaEnabled));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsZoomInertiaEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsZoomInertiaEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsZoomInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsZoomInertiaEnabled(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsZoomInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isZoomInertiaEnabled) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsZoomInertiaEnabled(*(void**)(&element), isZoomInertiaEnabled));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalScrollModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalScrollModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetHorizontalScrollMode(Windows::UI::Xaml::DependencyObject const& element) const
    {
        Windows::UI::Xaml::Controls::ScrollMode result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetHorizontalScrollMode(*(void**)(&element), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetHorizontalScrollMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollMode const& horizontalScrollMode) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetHorizontalScrollMode(*(void**)(&element), static_cast<int32_t>(horizontalScrollMode)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalScrollModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalScrollModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetVerticalScrollMode(Windows::UI::Xaml::DependencyObject const& element) const
    {
        Windows::UI::Xaml::Controls::ScrollMode result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetVerticalScrollMode(*(void**)(&element), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetVerticalScrollMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollMode const& verticalScrollMode) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetVerticalScrollMode(*(void**)(&element), static_cast<int32_t>(verticalScrollMode)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ZoomModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetZoomMode(Windows::UI::Xaml::DependencyObject const& element) const
    {
        Windows::UI::Xaml::Controls::ZoomMode result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetZoomMode(*(void**)(&element), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetZoomMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ZoomMode const& zoomMode) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetZoomMode(*(void**)(&element), static_cast<int32_t>(zoomMode)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsDeferredScrollingEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsDeferredScrollingEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsDeferredScrollingEnabled(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsDeferredScrollingEnabled(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsDeferredScrollingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isDeferredScrollingEnabled) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsDeferredScrollingEnabled(*(void**)(&element), isDeferredScrollingEnabled));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::BringIntoViewOnFocusChangeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_BringIntoViewOnFocusChangeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetBringIntoViewOnFocusChange(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetBringIntoViewOnFocusChange(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetBringIntoViewOnFocusChange(Windows::UI::Xaml::DependencyObject const& element, bool bringIntoViewOnFocusChange) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetBringIntoViewOnFocusChange(*(void**)(&element), bringIntoViewOnFocusChange));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::TopLeftHeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics2)->get_TopLeftHeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::LeftHeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics2)->get_LeftHeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::TopHeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics2)->get_TopHeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::ReduceViewportForCoreInputViewOcclusionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->get_ReduceViewportForCoreInputViewOcclusionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::HorizontalAnchorRatioProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->get_HorizontalAnchorRatioProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::VerticalAnchorRatioProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->get_VerticalAnchorRatioProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::CanContentRenderOutsideBoundsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->get_CanContentRenderOutsideBoundsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::GetCanContentRenderOutsideBounds(Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->GetCanContentRenderOutsideBounds(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::SetCanContentRenderOutsideBounds(Windows::UI::Xaml::DependencyObject const& element, bool canContentRenderOutsideBounds) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->SetCanContentRenderOutsideBounds(*(void**)(&element), canContentRenderOutsideBounds));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::HorizontalOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerView)->get_HorizontalOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::VerticalOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerView)->get_VerticalOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::ZoomFactor() const
    {
        float value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerView)->get_ZoomFactor(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangedEventArgs<D>::IsIntermediate() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs)->get_IsIntermediate(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::NextView() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs)->get_NextView(&value));
        return Windows::UI::Xaml::Controls::ScrollViewerView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::FinalView() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs)->get_FinalView(&value));
        return Windows::UI::Xaml::Controls::ScrollViewerView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::IsInertial() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs)->get_IsInertial(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_SearchHistoryEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_SearchHistoryEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryContext() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_SearchHistoryContext(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryContext(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_SearchHistoryContext(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PlaceholderText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_PlaceholderText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PlaceholderText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_PlaceholderText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_QueryText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_QueryText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::FocusOnKeyboardInput() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_FocusOnKeyboardInput(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::FocusOnKeyboardInput(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_FocusOnKeyboardInput(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ChooseSuggestionOnEnter() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_ChooseSuggestionOnEnter(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ChooseSuggestionOnEnter(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_ChooseSuggestionOnEnter(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_QueryChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged_revoker consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, QueryChanged_revoker>(this, QueryChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_QueryChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_SuggestionsRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested_revoker consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SuggestionsRequested_revoker>(this, SuggestionsRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_SuggestionsRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_QuerySubmitted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted_revoker consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, QuerySubmitted_revoker>(this, QuerySubmitted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_QuerySubmitted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_ResultSuggestionChosen(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen_revoker consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ResultSuggestionChosen_revoker>(this, ResultSuggestionChosen(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_ResultSuggestionChosen(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::RoutedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_PrepareForFocusOnKeyboardInput(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput_revoker consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::RoutedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PrepareForFocusOnKeyboardInput_revoker>(this, PrepareForFocusOnKeyboardInput(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_PrepareForFocusOnKeyboardInput(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SetLocalContentSuggestionSettings(Windows::ApplicationModel::Search::LocalContentSuggestionSettings const& settings) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->SetLocalContentSuggestionSettings(*(void**)(&settings)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SearchBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::QueryText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs)->get_QueryText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::Language() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs)->get_Language(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::LinguisticDetails() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs)->get_LinguisticDetails(&value));
        return Windows::ApplicationModel::Search::SearchQueryLinguisticDetails{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::QueryText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs)->get_QueryText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::Language() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs)->get_Language(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::LinguisticDetails() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs)->get_LinguisticDetails(&value));
        return Windows::ApplicationModel::Search::SearchQueryLinguisticDetails{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::KeyModifiers() const
    {
        Windows::System::VirtualKeyModifiers value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs)->get_KeyModifiers(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxResultSuggestionChosenEventArgs<D>::Tag() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs)->get_Tag(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxResultSuggestionChosenEventArgs<D>::KeyModifiers() const
    {
        Windows::System::VirtualKeyModifiers value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs)->get_KeyModifiers(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::SearchHistoryEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_SearchHistoryEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::SearchHistoryContextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_SearchHistoryContextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::PlaceholderTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_PlaceholderTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::QueryTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_QueryTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::FocusOnKeyboardInputProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_FocusOnKeyboardInputProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::ChooseSuggestionOnEnterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_ChooseSuggestionOnEnterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::QueryText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs)->get_QueryText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::Language() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs)->get_Language(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::LinguisticDetails() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs)->get_LinguisticDetails(&value));
        return Windows::ApplicationModel::Search::SearchQueryLinguisticDetails{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::Request() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs)->get_Request(&value));
        return Windows::ApplicationModel::Search::SearchSuggestionsRequest{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISectionsInViewChangedEventArgs<D>::AddedSections() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs)->get_AddedSections(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISectionsInViewChangedEventArgs<D>::RemovedSections() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs)->get_RemovedSections(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISelectionChangedEventArgs<D>::AddedItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISelectionChangedEventArgs)->get_AddedItems(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISelectionChangedEventArgs<D>::RemovedItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISelectionChangedEventArgs)->get_RemovedItems(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISelectionChangedEventArgsFactory<D>::CreateInstanceWithRemovedItemsAndAddedItems(param::vector<Windows::Foundation::IInspectable> const& removedItems, param::vector<Windows::Foundation::IInspectable> const& addedItems, Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory)->CreateInstanceWithRemovedItemsAndAddedItems(*(void**)(&removedItems), *(void**)(&addedItems), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SelectionChangedEventArgs{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedInView() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_ZoomedInView(&value));
        return Windows::UI::Xaml::Controls::ISemanticZoomInformation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedInView(Windows::UI::Xaml::Controls::ISemanticZoomInformation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_ZoomedInView(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedOutView() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_ZoomedOutView(&value));
        return Windows::UI::Xaml::Controls::ISemanticZoomInformation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedOutView(Windows::UI::Xaml::Controls::ISemanticZoomInformation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_ZoomedOutView(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomedInViewActive() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_IsZoomedInViewActive(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomedInViewActive(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_IsZoomedInViewActive(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::CanChangeViews() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_CanChangeViews(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::CanChangeViews(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_CanChangeViews(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->add_ViewChangeStarted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted_revoker consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(auto_revoke_t, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ViewChangeStarted_revoker>(this, ViewChangeStarted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->remove_ViewChangeStarted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->add_ViewChangeCompleted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted_revoker consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(auto_revoke_t, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ViewChangeCompleted_revoker>(this, ViewChangeCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->remove_ViewChangeCompleted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ToggleActiveView() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->ToggleActiveView());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomOutButtonEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_IsZoomOutButtonEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomOutButtonEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_IsZoomOutButtonEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::SemanticZoomOwner() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->get_SemanticZoomOwner(&value));
        return Windows::UI::Xaml::Controls::SemanticZoom{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::SemanticZoomOwner(Windows::UI::Xaml::Controls::SemanticZoom const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->put_SemanticZoomOwner(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsActiveView() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->get_IsActiveView(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsActiveView(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->put_IsActiveView(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsZoomedInView() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->get_IsZoomedInView(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsZoomedInView(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->put_IsZoomedInView(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::InitializeViewChange() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->InitializeViewChange());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::CompleteViewChange() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->CompleteViewChange());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::MakeVisible(Windows::UI::Xaml::Controls::SemanticZoomLocation const& item) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->MakeVisible(*(void**)(&item)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::StartViewChangeFrom(Windows::UI::Xaml::Controls::SemanticZoomLocation const& source, Windows::UI::Xaml::Controls::SemanticZoomLocation const& destination) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->StartViewChangeFrom(*(void**)(&source), *(void**)(&destination)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::StartViewChangeTo(Windows::UI::Xaml::Controls::SemanticZoomLocation const& source, Windows::UI::Xaml::Controls::SemanticZoomLocation const& destination) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->StartViewChangeTo(*(void**)(&source), *(void**)(&destination)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::CompleteViewChangeFrom(Windows::UI::Xaml::Controls::SemanticZoomLocation const& source, Windows::UI::Xaml::Controls::SemanticZoomLocation const& destination) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->CompleteViewChangeFrom(*(void**)(&source), *(void**)(&destination)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::CompleteViewChangeTo(Windows::UI::Xaml::Controls::SemanticZoomLocation const& source, Windows::UI::Xaml::Controls::SemanticZoomLocation const& destination) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->CompleteViewChangeTo(*(void**)(&source), *(void**)(&destination)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Item() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomLocation)->get_Item(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Item(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomLocation)->put_Item(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Bounds() const
    {
        Windows::Foundation::Rect value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomLocation)->get_Bounds(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Bounds(Windows::Foundation::Rect const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomLocation)->put_Bounds(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::ZoomedInViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_ZoomedInViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::ZoomedOutViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_ZoomedOutViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::IsZoomedInViewActiveProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_IsZoomedInViewActiveProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::CanChangeViewsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_CanChangeViewsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::IsZoomOutButtonEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_IsZoomOutButtonEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::IsSourceZoomedInView() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->get_IsSourceZoomedInView(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::IsSourceZoomedInView(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->put_IsSourceZoomedInView(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::SourceItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->get_SourceItem(&value));
        return Windows::UI::Xaml::Controls::SemanticZoomLocation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::SourceItem(Windows::UI::Xaml::Controls::SemanticZoomLocation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->put_SourceItem(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::DestinationItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->get_DestinationItem(&value));
        return Windows::UI::Xaml::Controls::SemanticZoomLocation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::DestinationItem(Windows::UI::Xaml::Controls::SemanticZoomLocation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->put_DestinationItem(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Title() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_Title(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Title(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->put_Title(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderBackground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_HeaderBackground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderBackground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->put_HeaderBackground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_HeaderForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->put_HeaderForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::IconSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_IconSource(&value));
        return Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::IconSource(Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->put_IconSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(Windows::UI::Xaml::Controls::BackClickEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->add_BackClick(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick_revoker consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(auto_revoke_t, Windows::UI::Xaml::Controls::BackClickEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, BackClick_revoker>(this, BackClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->remove_BackClick(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Show() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->Show());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::ShowIndependent() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->ShowIndependent());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Hide() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->Hide());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SettingsFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::TitleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutStatics)->get_TitleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::HeaderBackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutStatics)->get_HeaderBackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::HeaderForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutStatics)->get_HeaderForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::IconSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutStatics)->get_IconSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IntermediateValue() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_IntermediateValue(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IntermediateValue(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_IntermediateValue(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::StepFrequency() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_StepFrequency(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::StepFrequency(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_StepFrequency(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::SnapsTo() const
    {
        Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_SnapsTo(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::SnapsTo(Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_SnapsTo(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::TickFrequency() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_TickFrequency(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::TickFrequency(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_TickFrequency(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::TickPlacement() const
    {
        Windows::UI::Xaml::Controls::Primitives::TickPlacement value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_TickPlacement(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::TickPlacement(Windows::UI::Xaml::Controls::Primitives::TickPlacement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_TickPlacement(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IsDirectionReversed() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_IsDirectionReversed(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IsDirectionReversed(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_IsDirectionReversed(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IsThumbToolTipEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_IsThumbToolTipEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IsThumbToolTipEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_IsThumbToolTipEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::ThumbToolTipValueConverter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_ThumbToolTipValueConverter(&value));
        return Windows::UI::Xaml::Data::IValueConverter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::ThumbToolTipValueConverter(Windows::UI::Xaml::Data::IValueConverter const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_ThumbToolTipValueConverter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider2<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider2)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider2<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider2)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider2<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider2)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISlider2)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::Slider{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IntermediateValueProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_IntermediateValueProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::StepFrequencyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_StepFrequencyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::SnapsToProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_SnapsToProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::TickFrequencyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_TickFrequencyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::TickPlacementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_TickPlacementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IsDirectionReversedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_IsDirectionReversedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IsThumbToolTipEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_IsThumbToolTipEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::ThumbToolTipValueConverterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_ThumbToolTipValueConverterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics2<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics2)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISliderStatics2)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Flyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->get_Flyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Flyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->put_Flyout(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Command() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->get_Command(&value));
        return Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Command(Windows::UI::Xaml::Input::ICommand const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->put_Command(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::CommandParameter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->get_CommandParameter(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::CommandParameter(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->put_CommandParameter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Click(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitButton, Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->add_Click(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Click_revoker consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Click(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitButton, Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Click_revoker>(this, Click(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Click(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->remove_Click(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonAutomationPeerFactory<D>::CreateInstance(Windows::UI::Xaml::Controls::SplitButton const& owner, Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory)->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SplitButtonAutomationPeer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SplitButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::FlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButtonStatics)->get_FlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::CommandProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButtonStatics)->get_CommandProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::CommandParameterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitButtonStatics)->get_CommandParameterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::Content() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_Content(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::Content(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_Content(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::Pane() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_Pane(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::Pane(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_Pane(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::IsPaneOpen() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_IsPaneOpen(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::IsPaneOpen(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_IsPaneOpen(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::OpenPaneLength() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_OpenPaneLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::OpenPaneLength(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_OpenPaneLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::CompactPaneLength() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_CompactPaneLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::CompactPaneLength(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_CompactPaneLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PanePlacement() const
    {
        Windows::UI::Xaml::Controls::SplitViewPanePlacement value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_PanePlacement(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PanePlacement(Windows::UI::Xaml::Controls::SplitViewPanePlacement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_PanePlacement(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::DisplayMode() const
    {
        Windows::UI::Xaml::Controls::SplitViewDisplayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_DisplayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::DisplayMode(Windows::UI::Xaml::Controls::SplitViewDisplayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_DisplayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneBackground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_PaneBackground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneBackground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_PaneBackground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->add_PaneClosing(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing_revoker consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PaneClosing_revoker>(this, PaneClosing(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->remove_PaneClosing(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->add_PaneClosed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed_revoker consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneClosed_revoker>(this, PaneClosed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView)->remove_PaneClosed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView2<D>::LightDismissOverlayMode() const
    {
        Windows::UI::Xaml::Controls::LightDismissOverlayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView2)->get_LightDismissOverlayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView2<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView2)->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->add_PaneOpening(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening_revoker consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneOpening_revoker>(this, PaneOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->remove_PaneOpening(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->add_PaneOpened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened_revoker consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneOpened_revoker>(this, PaneOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->remove_PaneOpened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SplitView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewPaneClosingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewPaneClosingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::ContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_ContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PaneProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_PaneProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::IsPaneOpenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_IsPaneOpenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::OpenPaneLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_OpenPaneLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::CompactPaneLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_CompactPaneLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PanePlacementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_PanePlacementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::DisplayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_DisplayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::TemplateSettingsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_TemplateSettingsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PaneBackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_PaneBackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics2<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics2)->get_LightDismissOverlayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel<D>::AreScrollSnapPointsRegular() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel)->get_AreScrollSnapPointsRegular(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel<D>::AreScrollSnapPointsRegular(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel)->put_AreScrollSnapPointsRegular(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->get_BorderBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->put_BorderBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderThickness() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->get_BorderThickness(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->put_BorderThickness(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::CornerRadius() const
    {
        Windows::UI::Xaml::CornerRadius value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->get_CornerRadius(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->put_CornerRadius(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel4<D>::Spacing() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel4)->get_Spacing(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel4<D>::Spacing(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel4)->put_Spacing(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel5<D>::BackgroundSizing() const
    {
        Windows::UI::Xaml::Controls::BackgroundSizing value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel5)->get_BackgroundSizing(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel5<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanel5)->put_BackgroundSizing(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::StackPanel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics<D>::AreScrollSnapPointsRegularProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics)->get_AreScrollSnapPointsRegularProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::BorderBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics2)->get_BorderBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::BorderThicknessProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics2)->get_BorderThicknessProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::CornerRadiusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics2)->get_CornerRadiusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics2)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics4<D>::SpacingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics4)->get_SpacingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics5<D>::BackgroundSizingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics5)->get_BackgroundSizingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStyleSelector<D>::SelectStyle(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStyleSelector)->SelectStyle(*(void**)(&item), *(void**)(&container), &result));
        return Windows::UI::Xaml::Style{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStyleSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStyleSelectorFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStyleSelectorOverrides<D>::SelectStyleCore(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IStyleSelectorOverrides)->SelectStyleCore(*(void**)(&item), *(void**)(&container), &result));
        return Windows::UI::Xaml::Style{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainBackgroundPanel2<D>::CreateCoreIndependentInputSource(Windows::UI::Core::CoreInputDeviceTypes const& deviceTypes) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2)->CreateCoreIndependentInputSource(static_cast<uint32_t>(deviceTypes), &result));
        return Windows::UI::Core::CoreIndependentInputSource{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainBackgroundPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SwapChainBackgroundPanel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleX() const
    {
        float value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->get_CompositionScaleX(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleY() const
    {
        float value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->get_CompositionScaleY(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwapChainPanel, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->add_CompositionScaleChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged_revoker consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwapChainPanel, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, CompositionScaleChanged_revoker>(this, CompositionScaleChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->remove_CompositionScaleChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CreateCoreIndependentInputSource(Windows::UI::Core::CoreInputDeviceTypes const& deviceTypes) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->CreateCoreIndependentInputSource(static_cast<uint32_t>(deviceTypes), &result));
        return Windows::UI::Core::CoreIndependentInputSource{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanelFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SwapChainPanel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanelStatics<D>::CompositionScaleXProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanelStatics)->get_CompositionScaleXProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanelStatics<D>::CompositionScaleYProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanelStatics)->get_CompositionScaleYProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::LeftItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->get_LeftItems(&value));
        return Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::LeftItems(Windows::UI::Xaml::Controls::SwipeItems const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->put_LeftItems(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::RightItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->get_RightItems(&value));
        return Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::RightItems(Windows::UI::Xaml::Controls::SwipeItems const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->put_RightItems(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::TopItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->get_TopItems(&value));
        return Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::TopItems(Windows::UI::Xaml::Controls::SwipeItems const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->put_TopItems(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::BottomItems() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->get_BottomItems(&value));
        return Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::BottomItems(Windows::UI::Xaml::Controls::SwipeItems const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->put_BottomItems(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::Close() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->Close());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControlFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SwipeControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::LeftItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControlStatics)->get_LeftItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::RightItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControlStatics)->get_RightItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::TopItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControlStatics)->get_TopItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::BottomItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeControlStatics)->get_BottomItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Text() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_Text(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Text(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_Text(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::IconSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_IconSource(&value));
        return Windows::UI::Xaml::Controls::IconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::IconSource(Windows::UI::Xaml::Controls::IconSource const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_IconSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Background() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_Background(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_Background(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Foreground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_Foreground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_Foreground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Command() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_Command(&value));
        return Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Command(Windows::UI::Xaml::Input::ICommand const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_Command(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::CommandParameter() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_CommandParameter(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::CommandParameter(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_CommandParameter(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::BehaviorOnInvoked() const
    {
        Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_BehaviorOnInvoked(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::BehaviorOnInvoked(Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_BehaviorOnInvoked(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwipeItem, Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->add_Invoked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked_revoker consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwipeItem, Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Invoked_revoker>(this, Invoked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->remove_Invoked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SwipeItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemInvokedEventArgs<D>::SwipeControl() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs)->get_SwipeControl(&value));
        return Windows::UI::Xaml::Controls::SwipeControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::IconSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_IconSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::TextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_TextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::BackgroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_BackgroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::ForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_ForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::CommandProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_CommandProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::CommandParameterProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_CommandParameterProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::BehaviorOnInvokedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_BehaviorOnInvokedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItems<D>::Mode() const
    {
        Windows::UI::Xaml::Controls::SwipeMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItems)->get_Mode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItems<D>::Mode(Windows::UI::Xaml::Controls::SwipeMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItems)->put_Mode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemsFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemsFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemsStatics<D>::ModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISwipeItemsStatics)->get_ModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIcon<D>::Symbol() const
    {
        Windows::UI::Xaml::Controls::Symbol value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISymbolIcon)->get_Symbol(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIcon<D>::Symbol(Windows::UI::Xaml::Controls::Symbol const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISymbolIcon)->put_Symbol(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconFactory<D>::CreateInstanceWithSymbol(Windows::UI::Xaml::Controls::Symbol const& symbol) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISymbolIconFactory)->CreateInstanceWithSymbol(static_cast<int32_t>(symbol), &value));
        return Windows::UI::Xaml::Controls::SymbolIcon{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconSource<D>::Symbol() const
    {
        Windows::UI::Xaml::Controls::Symbol value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSource)->get_Symbol(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconSource<D>::Symbol(Windows::UI::Xaml::Controls::Symbol const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSource)->put_Symbol(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconSourceFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSourceFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::SymbolIconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconSourceStatics<D>::SymbolProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSourceStatics)->get_SymbolProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconStatics<D>::SymbolProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ISymbolIconStatics)->get_SymbolProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontFamily() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontFamily(&value));
        return Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontFamily(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontWeight() const
    {
        Windows::UI::Text::FontWeight value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontWeight(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontWeight(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStyle() const
    {
        Windows::UI::Text::FontStyle value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontStyle(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontStyle(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStretch() const
    {
        Windows::UI::Text::FontStretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontStretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStretch(Windows::UI::Text::FontStretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontStretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::CharacterSpacing() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_CharacterSpacing(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::CharacterSpacing(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_CharacterSpacing(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Foreground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_Foreground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_Foreground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextWrapping() const
    {
        Windows::UI::Xaml::TextWrapping value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_TextWrapping(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_TextWrapping(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextTrimming() const
    {
        Windows::UI::Xaml::TextTrimming value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_TextTrimming(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextTrimming(Windows::UI::Xaml::TextTrimming const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_TextTrimming(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextAlignment() const
    {
        Windows::UI::Xaml::TextAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_TextAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_TextAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Text() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_Text(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Text(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_Text(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Inlines() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_Inlines(&value));
        return Windows::UI::Xaml::Documents::InlineCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Padding() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_Padding(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_Padding(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_LineHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_LineHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineStackingStrategy() const
    {
        Windows::UI::Xaml::LineStackingStrategy value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_LineStackingStrategy(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_LineStackingStrategy(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::IsTextSelectionEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_IsTextSelectionEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::IsTextSelectionEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_IsTextSelectionEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectedText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_SelectedText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContentStart() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_ContentStart(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContentEnd() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_ContentEnd(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionStart() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_SelectionStart(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionEnd() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_SelectionEnd(&value));
        return Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::BaselineOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_BaselineOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged_revoker consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->remove_SelectionChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening_revoker consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->remove_ContextMenuOpening(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectAll() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->SelectAll());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Select(Windows::UI::Xaml::Documents::TextPointer const& start, Windows::UI::Xaml::Documents::TextPointer const& end) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->Select(*(void**)(&start), *(void**)(&end)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->Focus(static_cast<int32_t>(value), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::SelectionHighlightColor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_SelectionHighlightColor(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_SelectionHighlightColor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::MaxLines() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_MaxLines(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::MaxLines(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_MaxLines(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextLineBounds() const
    {
        Windows::UI::Xaml::TextLineBounds value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_TextLineBounds(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextLineBounds(Windows::UI::Xaml::TextLineBounds const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_TextLineBounds(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::OpticalMarginAlignment() const
    {
        Windows::UI::Xaml::OpticalMarginAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_OpticalMarginAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::IsColorFontEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_IsColorFontEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::IsColorFontEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_IsColorFontEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextReadingOrder() const
    {
        Windows::UI::Xaml::TextReadingOrder value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_TextReadingOrder(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_TextReadingOrder(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock3<D>::IsTextScaleFactorEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock3)->get_IsTextScaleFactorEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock3<D>::IsTextScaleFactorEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock3)->put_IsTextScaleFactorEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock4<D>::GetAlphaMask() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock4)->GetAlphaMask(&result));
        return Windows::UI::Composition::CompositionBrush{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock5<D>::TextDecorations() const
    {
        Windows::UI::Text::TextDecorations value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock5)->get_TextDecorations(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock5<D>::TextDecorations(Windows::UI::Text::TextDecorations const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock5)->put_TextDecorations(static_cast<uint32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmed() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->get_IsTextTrimmed(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::HorizontalTextAlignment() const
    {
        Windows::UI::Xaml::TextAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->get_HorizontalTextAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::TextHighlighters() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->get_TextHighlighters(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged_revoker consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsTextTrimmedChanged_revoker>(this, IsTextTrimmedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->remove_IsTextTrimmedChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::SelectionFlyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock7)->get_SelectionFlyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock7)->put_SelectionFlyout(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::CopySelectionToClipboard() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlock7)->CopySelectionToClipboard());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontFamilyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontWeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontWeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontStretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontStretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::CharacterSpacingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_CharacterSpacingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::ForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_ForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextWrappingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_TextWrappingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextTrimmingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_TextTrimmingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_TextAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_TextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::PaddingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_PaddingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::LineHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_LineHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::LineStackingStrategyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_LineStackingStrategyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::IsTextSelectionEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_IsTextSelectionEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::SelectedTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_SelectedTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_SelectionHighlightColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::MaxLinesProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_MaxLinesProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::TextLineBoundsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_TextLineBoundsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::OpticalMarginAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_OpticalMarginAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::IsColorFontEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_IsColorFontEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::TextReadingOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_TextReadingOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics3<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics3)->get_IsTextScaleFactorEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics5<D>::TextDecorationsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics5)->get_TextDecorationsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics6<D>::IsTextTrimmedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics6)->get_IsTextTrimmedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics6<D>::HorizontalTextAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics6)->get_HorizontalTextAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics7<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics7)->get_SelectionFlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::Text() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_Text(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::Text(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_Text(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectedText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_SelectedText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectedText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_SelectedText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionLength() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_SelectionLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionLength(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_SelectionLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionStart() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_SelectionStart(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionStart(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_SelectionStart(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::MaxLength() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_MaxLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::MaxLength(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_MaxLength(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsReadOnly() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_IsReadOnly(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsReadOnly(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_IsReadOnly(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::AcceptsReturn() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_AcceptsReturn(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::AcceptsReturn(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_AcceptsReturn(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextAlignment() const
    {
        Windows::UI::Xaml::TextAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_TextAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_TextAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextWrapping() const
    {
        Windows::UI::Xaml::TextWrapping value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_TextWrapping(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_TextWrapping(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsSpellCheckEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_IsSpellCheckEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsSpellCheckEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_IsSpellCheckEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsTextPredictionEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_IsTextPredictionEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsTextPredictionEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_IsTextPredictionEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::InputScope() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_InputScope(&value));
        return Windows::UI::Xaml::Input::InputScope{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::InputScope(Windows::UI::Xaml::Input::InputScope const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_InputScope(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(Windows::UI::Xaml::Controls::TextChangedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_TextChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged_revoker consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(auto_revoke_t, Windows::UI::Xaml::Controls::TextChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, TextChanged_revoker>(this, TextChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->remove_TextChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged_revoker consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->remove_SelectionChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening_revoker consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->remove_ContextMenuOpening(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::Select(int32_t start, int32_t length) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->Select(start, length));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectAll() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->SelectAll());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::GetRectFromCharacterIndex(int32_t charIndex, bool trailingEdge) const
    {
        Windows::Foundation::Rect result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox)->GetRectFromCharacterIndex(charIndex, trailingEdge, put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PlaceholderText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_PlaceholderText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PlaceholderText(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_PlaceholderText(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::SelectionHighlightColor() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_SelectionHighlightColor(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_SelectionHighlightColor(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::IsColorFontEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_IsColorFontEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::IsColorFontEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_IsColorFontEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->add_Paste(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste_revoker consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(auto_revoke_t, Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Paste_revoker>(this, Paste(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->remove_Paste(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionStarted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted_revoker consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionStarted_revoker>(this, TextCompositionStarted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextCompositionStarted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged_revoker consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionChanged_revoker>(this, TextCompositionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextCompositionChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionEnded(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded_revoker consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionEnded_revoker>(this, TextCompositionEnded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextCompositionEnded(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextReadingOrder() const
    {
        Windows::UI::Xaml::TextReadingOrder value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->get_TextReadingOrder(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->put_TextReadingOrder(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::DesiredCandidateWindowAlignment() const
    {
        Windows::UI::Xaml::Controls::CandidateWindowAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->get_DesiredCandidateWindowAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->put_DesiredCandidateWindowAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_CandidateWindowBoundsChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged_revoker consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CandidateWindowBoundsChanged_revoker>(this, CandidateWindowBoundsChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_CandidateWindowBoundsChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging_revoker consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextChanging_revoker>(this, TextChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox4<D>::GetLinguisticAlternativesAsync() const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox4)->GetLinguisticAlternativesAsync(&operation));
        return Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox5<D>::SelectionHighlightColorWhenNotFocused() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox5)->get_SelectionHighlightColorWhenNotFocused(&value));
        return Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox5<D>::SelectionHighlightColorWhenNotFocused(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox5)->put_SelectionHighlightColorWhenNotFocused(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::HorizontalTextAlignment() const
    {
        Windows::UI::Xaml::TextAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->get_HorizontalTextAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CharacterCasing() const
    {
        Windows::UI::Xaml::Controls::CharacterCasing value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->get_CharacterCasing(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->put_CharacterCasing(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::PlaceholderForeground() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->get_PlaceholderForeground(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::PlaceholderForeground(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->put_PlaceholderForeground(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_CopyingToClipboard(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard_revoker consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CopyingToClipboard_revoker>(this, CopyingToClipboard(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->remove_CopyingToClipboard(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_CuttingToClipboard(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard_revoker consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CuttingToClipboard_revoker>(this, CuttingToClipboard(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->remove_CuttingToClipboard(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_BeforeTextChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging_revoker consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, BeforeTextChanging_revoker>(this, BeforeTextChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->remove_BeforeTextChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox7<D>::HandwritingView() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox7)->get_HandwritingView(&value));
        return Windows::UI::Xaml::Controls::HandwritingView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox7<D>::HandwritingView(Windows::UI::Xaml::Controls::HandwritingView const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox7)->put_HandwritingView(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox7<D>::IsHandwritingViewEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox7)->get_IsHandwritingViewEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox7<D>::IsHandwritingViewEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox7)->put_IsHandwritingViewEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanPasteClipboardContent() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_CanPasteClipboardContent(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanUndo() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_CanUndo(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanRedo() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_CanRedo(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionFlyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_SelectionFlyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->put_SelectionFlyout(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::ProofingMenuFlyout() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_ProofingMenuFlyout(&value));
        return Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Description() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_Description(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Description(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->put_Description(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->add_SelectionChanging(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionChanging_revoker consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionChanging(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanging_revoker>(this, SelectionChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionChanging(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->remove_SelectionChanging(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Undo() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->Undo());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Redo() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->Redo());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::PasteFromClipboard() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->PasteFromClipboard());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CopySelectionToClipboard() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->CopySelectionToClipboard());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CutSelectionToClipboard() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->CutSelectionToClipboard());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::ClearUndoRedoHistory() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->ClearUndoRedoHistory());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::NewText() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs)->get_NewText(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TextBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::SelectionStart() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs)->get_SelectionStart(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::SelectionLength() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs)->get_SelectionLength(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_TextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::MaxLengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_MaxLengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsReadOnlyProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_IsReadOnlyProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::AcceptsReturnProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_AcceptsReturnProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_TextAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextWrappingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_TextWrappingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsSpellCheckEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_IsSpellCheckEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsTextPredictionEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_IsTextPredictionEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::InputScopeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_InputScopeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::PlaceholderTextProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_PlaceholderTextProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_SelectionHighlightColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::IsColorFontEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_IsColorFontEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics3<D>::DesiredCandidateWindowAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics3)->get_DesiredCandidateWindowAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics3<D>::TextReadingOrderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics3)->get_TextReadingOrderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics5<D>::SelectionHighlightColorWhenNotFocusedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics5)->get_SelectionHighlightColorWhenNotFocusedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::HorizontalTextAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics6)->get_HorizontalTextAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::CharacterCasingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics6)->get_CharacterCasingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::PlaceholderForegroundProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics6)->get_PlaceholderForegroundProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics7<D>::HandwritingViewProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics7)->get_HandwritingViewProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics7<D>::IsHandwritingViewEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics7)->get_IsHandwritingViewEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanPasteClipboardContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_CanPasteClipboardContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanUndoProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_CanUndoProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanRedoProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_CanRedoProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_SelectionFlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::ProofingMenuFlyoutProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_ProofingMenuFlyoutProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::DescriptionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_DescriptionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxTextChangingEventArgs2<D>::IsContentChanging() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2)->get_IsContentChanging(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCommandBarFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TextCommandBarFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionChangedEventArgs<D>::StartIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs)->get_StartIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionChangedEventArgs<D>::Length() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs)->get_Length(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionEndedEventArgs<D>::StartIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs)->get_StartIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionEndedEventArgs<D>::Length() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs)->get_Length(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionStartedEventArgs<D>::StartIndex() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs)->get_StartIndex(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionStartedEventArgs<D>::Length() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs)->get_Length(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlCopyingToClipboardEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlCopyingToClipboardEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlCuttingToClipboardEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlCuttingToClipboardEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlPasteEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextControlPasteEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlPasteEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITextControlPasteEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickedEventArgs<D>::OldTime() const
    {
        Windows::Foundation::TimeSpan value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickedEventArgs)->get_OldTime(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickedEventArgs<D>::NewTime() const
    {
        Windows::Foundation::TimeSpan value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickedEventArgs)->get_NewTime(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::ClockIdentifier() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_ClockIdentifier(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::ClockIdentifier(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_ClockIdentifier(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::MinuteIncrement() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_MinuteIncrement(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::MinuteIncrement(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_MinuteIncrement(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Time() const
    {
        Windows::Foundation::TimeSpan value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_Time(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Time(Windows::Foundation::TimeSpan const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_Time(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->add_TimeChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged_revoker consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(auto_revoke_t, Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TimeChanged_revoker>(this, TimeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->remove_TimeChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker2<D>::LightDismissOverlayMode() const
    {
        Windows::UI::Xaml::Controls::LightDismissOverlayMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker2)->get_LightDismissOverlayMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker2<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker2)->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTime() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker3)->get_SelectedTime(&value));
        return Windows::Foundation::IReference<Windows::Foundation::TimeSpan>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTime(Windows::Foundation::IReference<Windows::Foundation::TimeSpan> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker3)->put_SelectedTime(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTimeChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePicker, Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker3)->add_SelectedTimeChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTimeChanged_revoker consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTimeChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePicker, Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectedTimeChanged_revoker>(this, SelectedTimeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTimeChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePicker3)->remove_SelectedTimeChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TimePicker{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ClockIdentifier() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->get_ClockIdentifier(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ClockIdentifier(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->put_ClockIdentifier(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::Time() const
    {
        Windows::Foundation::TimeSpan value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->get_Time(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::Time(Windows::Foundation::TimeSpan const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->put_Time(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::MinuteIncrement() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->get_MinuteIncrement(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::MinuteIncrement(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->put_MinuteIncrement(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePickerFlyout, Windows::UI::Xaml::Controls::TimePickedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->add_TimePicked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked_revoker consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePickerFlyout, Windows::UI::Xaml::Controls::TimePickedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TimePicked_revoker>(this, TimePicked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->remove_TimePicked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ShowAtAsync(Windows::UI::Xaml::FrameworkElement const& target) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->ShowAtAsync(*(void**)(&target), &operation));
        return Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutPresenter2<D>::IsDefaultShadowEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2)->get_IsDefaultShadowEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutPresenter2<D>::IsDefaultShadowEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2)->put_IsDefaultShadowEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutPresenterStatics2<D>::IsDefaultShadowEnabledProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2)->get_IsDefaultShadowEnabledProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::ClockIdentifierProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics)->get_ClockIdentifierProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::TimeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics)->get_TimeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::MinuteIncrementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics)->get_MinuteIncrementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerSelectedValueChangedEventArgs<D>::OldTime() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs)->get_OldTime(&value));
        return Windows::Foundation::IReference<Windows::Foundation::TimeSpan>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerSelectedValueChangedEventArgs<D>::NewTime() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs)->get_NewTime(&value));
        return Windows::Foundation::IReference<Windows::Foundation::TimeSpan>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::ClockIdentifierProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_ClockIdentifierProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::MinuteIncrementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_MinuteIncrementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::TimeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_TimeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics2<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics2)->get_LightDismissOverlayModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics3<D>::SelectedTimeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics3)->get_SelectedTimeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerValueChangedEventArgs<D>::OldTime() const
    {
        Windows::Foundation::TimeSpan value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs)->get_OldTime(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerValueChangedEventArgs<D>::NewTime() const
    {
        Windows::Foundation::TimeSpan value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs)->get_NewTime(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItem<D>::IsChecked() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem)->get_IsChecked(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItem<D>::IsChecked(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem)->put_IsChecked(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItemStatics<D>::IsCheckedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics)->get_IsCheckedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsChecked() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButton)->get_IsChecked(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsChecked(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButton)->put_IsChecked(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsCheckedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ToggleSplitButton, Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButton)->add_IsCheckedChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsCheckedChanged_revoker consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsCheckedChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ToggleSplitButton, Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsCheckedChanged_revoker>(this, IsCheckedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsCheckedChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButton)->remove_IsCheckedChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButtonAutomationPeerFactory<D>::CreateInstance(Windows::UI::Xaml::Controls::ToggleSplitButton const& owner, Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory)->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButtonFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ToggleSplitButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::IsOn() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_IsOn(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::IsOn(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_IsOn(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Header() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_Header(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Header(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_Header(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::HeaderTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_HeaderTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_HeaderTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContent() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_OnContent(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContent(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_OnContent(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContentTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_OnContentTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_OnContentTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContent() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_OffContent(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContent(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_OffContent(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContentTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_OffContentTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_OffContentTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->add_Toggled(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled_revoker consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Toggled_revoker>(this, Toggled(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->remove_Toggled(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnToggled() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchOverrides)->OnToggled());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnOnContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchOverrides)->OnOnContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnOffContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchOverrides)->OnOffContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnHeaderChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchOverrides)->OnHeaderChanged(*(void**)(&oldContent), *(void**)(&newContent)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::IsOnProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_IsOnProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::HeaderProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_HeaderProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_HeaderTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OnContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_OnContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OnContentTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_OnContentTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OffContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_OffContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OffContentTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_OffContentTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::HorizontalOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_HorizontalOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::HorizontalOffset(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_HorizontalOffset(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::IsOpen() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_IsOpen(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::IsOpen(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_IsOpen(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Placement() const
    {
        Windows::UI::Xaml::Controls::Primitives::PlacementMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_Placement(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Placement(Windows::UI::Xaml::Controls::Primitives::PlacementMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_Placement(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::PlacementTarget() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_PlacementTarget(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::PlacementTarget(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_PlacementTarget(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::VerticalOffset() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_VerticalOffset(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::VerticalOffset(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_VerticalOffset(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::TemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_TemplateSettings(&value));
        return Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->add_Closed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed_revoker consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->remove_Closed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->add_Opened(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened_revoker consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip)->remove_Opened(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip2<D>::PlacementRect() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip2)->get_PlacementRect(&value));
        return Windows::Foundation::IReference<Windows::Foundation::Rect>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip2<D>::PlacementRect(Windows::Foundation::IReference<Windows::Foundation::Rect> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTip2)->put_PlacementRect(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::ToolTip{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::PlacementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->get_PlacementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::GetPlacement(Windows::UI::Xaml::DependencyObject const& element) const
    {
        Windows::UI::Xaml::Controls::Primitives::PlacementMode result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetPlacement(*(void**)(&element), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::SetPlacement(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::Primitives::PlacementMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->SetPlacement(*(void**)(&element), static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::PlacementTargetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->get_PlacementTargetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::GetPlacementTarget(Windows::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetPlacementTarget(*(void**)(&element), &result));
        return Windows::UI::Xaml::UIElement{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::SetPlacementTarget(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->SetPlacementTarget(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::ToolTipProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->get_ToolTipProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::GetToolTip(Windows::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetToolTip(*(void**)(&element), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::SetToolTip(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->SetToolTip(*(void**)(&element), *(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::HorizontalOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_HorizontalOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::IsOpenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_IsOpenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::PlacementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_PlacementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::PlacementTargetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_PlacementTargetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::VerticalOffsetProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_VerticalOffsetProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics2<D>::PlacementRectProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics2)->get_PlacementRectProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::RootNodes() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->get_RootNodes(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectionMode() const
    {
        Windows::UI::Xaml::Controls::TreeViewSelectionMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->get_SelectionMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectionMode(Windows::UI::Xaml::Controls::TreeViewSelectionMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->put_SelectionMode(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectedNodes() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->get_SelectedNodes(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expand(Windows::UI::Xaml::Controls::TreeViewNode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->Expand(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapse(Windows::UI::Xaml::Controls::TreeViewNode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->Collapse(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectAll() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->SelectAll());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_ItemInvoked(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked_revoker consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ItemInvoked_revoker>(this, ItemInvoked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->remove_ItemInvoked(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_Expanding(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding_revoker consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Expanding_revoker>(this, Expanding(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->remove_Expanding(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_Collapsed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed_revoker consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Collapsed_revoker>(this, Collapsed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView)->remove_Collapsed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::NodeFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->NodeFromContainer(*(void**)(&container), &result));
        return Windows::UI::Xaml::Controls::TreeViewNode{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ContainerFromNode(Windows::UI::Xaml::Controls::TreeViewNode const& node) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->ContainerFromNode(*(void**)(&node), &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->ItemFromContainer(*(void**)(&container), &result));
        return Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ContainerFromItem(Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->ContainerFromItem(*(void**)(&item), &result));
        return Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanDragItems() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_CanDragItems(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanDragItems(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_CanDragItems(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanReorderItems() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_CanReorderItems(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanReorderItems(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_CanReorderItems(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplate() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemTemplate(&value));
        return Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplate(Windows::UI::Xaml::DataTemplate const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemTemplate(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplateSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemTemplateSelector(&value));
        return Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemTemplateSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemContainerStyle(&value));
        return Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyle(Windows::UI::Xaml::Style const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemContainerStyle(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyleSelector() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemContainerStyleSelector(&value));
        return Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyleSelector(Windows::UI::Xaml::Controls::StyleSelector const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemContainerStyleSelector(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerTransitions() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemContainerTransitions(&value));
        return Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemContainerTransitions(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemsSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemsSource(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemsSource(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemsSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsStarting(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->add_DragItemsStarting(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsStarting_revoker consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsStarting(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DragItemsStarting_revoker>(this, DragItemsStarting(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsStarting(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->remove_DragItemsStarting(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsCompleted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->add_DragItemsCompleted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsCompleted_revoker consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsCompleted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DragItemsCompleted_revoker>(this, DragItemsCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsCompleted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->remove_DragItemsCompleted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewCollapsedEventArgs<D>::Node() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs)->get_Node(&value));
        return Windows::UI::Xaml::Controls::TreeViewNode{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewCollapsedEventArgs2<D>::Item() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2)->get_Item(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsCompletedEventArgs<D>::DropResult() const
    {
        Windows::ApplicationModel::DataTransfer::DataPackageOperation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs)->get_DropResult(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsCompletedEventArgs<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs)->get_Items(&value));
        return Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Data() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs)->get_Data(&value));
        return Windows::ApplicationModel::DataTransfer::DataPackage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Items() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs)->get_Items(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewExpandingEventArgs<D>::Node() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs)->get_Node(&value));
        return Windows::UI::Xaml::Controls::TreeViewNode{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewExpandingEventArgs2<D>::Item() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2)->get_Item(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TreeView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphOpacity() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphOpacity(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphOpacity(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_GlyphOpacity(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphBrush() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphBrush(&value));
        return Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphBrush(Windows::UI::Xaml::Media::Brush const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_GlyphBrush(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::ExpandedGlyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_ExpandedGlyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::ExpandedGlyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_ExpandedGlyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::CollapsedGlyph() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_CollapsedGlyph(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::CollapsedGlyph(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_CollapsedGlyph(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphSize() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphSize(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphSize(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_GlyphSize(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::IsExpanded() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_IsExpanded(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::IsExpanded(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_IsExpanded(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::TreeViewItemTemplateSettings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_TreeViewItemTemplateSettings(&value));
        return Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::HasUnrealizedChildren() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem2)->get_HasUnrealizedChildren(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::HasUnrealizedChildren(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem2)->put_HasUnrealizedChildren(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::ItemsSource() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem2)->get_ItemsSource(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::ItemsSource(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem2)->put_ItemsSource(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TreeViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::InvokedItem() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs)->get_InvokedItem(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphOpacityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_GlyphOpacityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphBrushProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_GlyphBrushProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::ExpandedGlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_ExpandedGlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::CollapsedGlyphProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_CollapsedGlyphProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphSizeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_GlyphSizeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::IsExpandedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_IsExpandedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::TreeViewItemTemplateSettingsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_TreeViewItemTemplateSettingsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics2<D>::HasUnrealizedChildrenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics2)->get_HasUnrealizedChildrenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics2<D>::ItemsSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics2)->get_ItemsSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::ExpandedGlyphVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings)->get_ExpandedGlyphVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::CollapsedGlyphVisibility() const
    {
        Windows::UI::Xaml::Visibility value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings)->get_CollapsedGlyphVisibility(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::Indentation() const
    {
        Windows::UI::Xaml::Thickness value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings)->get_Indentation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::DragItemsCount() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings)->get_DragItemsCount(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::ExpandedGlyphVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics)->get_ExpandedGlyphVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::CollapsedGlyphVisibilityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics)->get_CollapsedGlyphVisibilityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::IndentationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics)->get_IndentationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::DragItemsCountProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics)->get_DragItemsCountProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewListFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewListFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TreeViewList{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Content() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_Content(&value));
        return Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Content(Windows::Foundation::IInspectable const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->put_Content(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Parent() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_Parent(&value));
        return Windows::UI::Xaml::Controls::TreeViewNode{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::IsExpanded() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_IsExpanded(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::IsExpanded(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->put_IsExpanded(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasChildren() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_HasChildren(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Depth() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_Depth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasUnrealizedChildren() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_HasUnrealizedChildren(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasUnrealizedChildren(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->put_HasUnrealizedChildren(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Children() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_Children(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TreeViewNode{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::ContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeStatics)->get_ContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::DepthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeStatics)->get_DepthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::IsExpandedProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeStatics)->get_IsExpandedProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::HasChildrenProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeStatics)->get_HasChildrenProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics)->get_SelectionModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::CanDragItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_CanDragItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::CanReorderItemsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_CanReorderItemsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemTemplateProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemTemplateProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemTemplateSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemTemplateSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerStyleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemContainerStyleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerStyleSelectorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemContainerStyleSelectorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerTransitionsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemContainerTransitionsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemsSourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemsSourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane1() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_Pane1(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane1(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_Pane1(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane2() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_Pane2(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane2(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_Pane2(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane1Length() const
    {
        Windows::UI::Xaml::GridLength value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_Pane1Length(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane1Length(Windows::UI::Xaml::GridLength const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_Pane1Length(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane2Length() const
    {
        Windows::UI::Xaml::GridLength value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_Pane2Length(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane2Length(Windows::UI::Xaml::GridLength const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_Pane2Length(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::PanePriority() const
    {
        Windows::UI::Xaml::Controls::TwoPaneViewPriority value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_PanePriority(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::PanePriority(Windows::UI::Xaml::Controls::TwoPaneViewPriority const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_PanePriority(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Mode() const
    {
        Windows::UI::Xaml::Controls::TwoPaneViewMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_Mode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::WideModeConfiguration() const
    {
        Windows::UI::Xaml::Controls::TwoPaneViewWideModeConfiguration value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_WideModeConfiguration(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::WideModeConfiguration(Windows::UI::Xaml::Controls::TwoPaneViewWideModeConfiguration const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_WideModeConfiguration(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::TallModeConfiguration() const
    {
        Windows::UI::Xaml::Controls::TwoPaneViewTallModeConfiguration value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_TallModeConfiguration(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::TallModeConfiguration(Windows::UI::Xaml::Controls::TwoPaneViewTallModeConfiguration const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_TallModeConfiguration(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::MinWideModeWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_MinWideModeWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::MinWideModeWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_MinWideModeWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::MinTallModeHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->get_MinTallModeHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::MinTallModeHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->put_MinTallModeHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::ModeChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TwoPaneView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->add_ModeChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::ModeChanged_revoker consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::ModeChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TwoPaneView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, ModeChanged_revoker>(this, ModeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::ModeChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneView)->remove_ModeChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::TwoPaneView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::Pane1Property() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_Pane1Property(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::Pane2Property() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_Pane2Property(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::Pane1LengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_Pane1LengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::Pane2LengthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_Pane2LengthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::PanePriorityProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_PanePriorityProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::ModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_ModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::WideModeConfigurationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_WideModeConfigurationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::TallModeConfigurationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_TallModeConfigurationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::MinWideModeWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_MinWideModeWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::MinTallModeHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::ITwoPaneViewStatics)->get_MinTallModeHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUIElementCollection<D>::Move(uint32_t oldIndex, uint32_t newIndex) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IUIElementCollection)->Move(oldIndex, newIndex));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUserControl<D>::Content() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IUserControl)->get_Content(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUserControl<D>::Content(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IUserControl)->put_Content(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUserControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IUserControlFactory)->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        return Windows::UI::Xaml::Controls::UserControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUserControlStatics<D>::ContentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IUserControlStatics)->get_ContentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_ItemHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_ItemHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_ItemWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_ItemWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::HorizontalChildrenAlignment() const
    {
        Windows::UI::Xaml::HorizontalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_HorizontalChildrenAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_HorizontalChildrenAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::VerticalChildrenAlignment() const
    {
        Windows::UI::Xaml::VerticalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_VerticalChildrenAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_VerticalChildrenAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::MaximumRowsOrColumns() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_MaximumRowsOrColumns(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_MaximumRowsOrColumns(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ItemHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_ItemHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ItemWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_ItemWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::HorizontalChildrenAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_HorizontalChildrenAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::VerticalChildrenAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_VerticalChildrenAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_MaximumRowsOrColumnsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::RowSpanProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_RowSpanProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::GetRowSpan(Windows::UI::Xaml::UIElement const& element) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->GetRowSpan(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::SetRowSpan(Windows::UI::Xaml::UIElement const& element, int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->SetRowSpan(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ColumnSpanProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_ColumnSpanProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::GetColumnSpan(Windows::UI::Xaml::UIElement const& element) const
    {
        int32_t result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->GetColumnSpan(*(void**)(&element), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::SetColumnSpan(Windows::UI::Xaml::UIElement const& element, int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->SetColumnSpan(*(void**)(&element), value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::Child() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IViewbox)->get_Child(&value));
        return Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::Child(Windows::UI::Xaml::UIElement const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IViewbox)->put_Child(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::Stretch() const
    {
        Windows::UI::Xaml::Media::Stretch value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IViewbox)->get_Stretch(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IViewbox)->put_Stretch(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::StretchDirection() const
    {
        Windows::UI::Xaml::Controls::StretchDirection value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IViewbox)->get_StretchDirection(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::StretchDirection(Windows::UI::Xaml::Controls::StretchDirection const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IViewbox)->put_StretchDirection(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewboxStatics<D>::StretchProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IViewboxStatics)->get_StretchProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewboxStatics<D>::StretchDirectionProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IViewboxStatics)->get_StretchDirectionProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanel<D>::ItemContainerGenerator() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanel)->get_ItemContainerGenerator(&value));
        return Windows::UI::Xaml::Controls::ItemContainerGenerator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelOverrides<D>::OnItemsChanged(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const& args) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides)->OnItemsChanged(*(void**)(&sender), *(void**)(&args)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelOverrides<D>::OnClearChildren() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides)->OnClearChildren());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelOverrides<D>::BringIndexIntoView(int32_t index) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides)->BringIndexIntoView(index));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::AddInternalChild(Windows::UI::Xaml::UIElement const& child) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelProtected)->AddInternalChild(*(void**)(&child)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::InsertInternalChild(int32_t index, Windows::UI::Xaml::UIElement const& child) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelProtected)->InsertInternalChild(index, *(void**)(&child)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::RemoveInternalChildRange(int32_t index, int32_t range) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelProtected)->RemoveInternalChildRange(index, range));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::AreScrollSnapPointsRegular() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->get_AreScrollSnapPointsRegular(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::AreScrollSnapPointsRegular(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->put_AreScrollSnapPointsRegular(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->add_CleanUpVirtualizedItemEvent(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent_revoker consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(auto_revoke_t, Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, CleanUpVirtualizedItemEvent_revoker>(this, CleanUpVirtualizedItemEvent(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->remove_CleanUpVirtualizedItemEvent(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelOverrides<D>::OnCleanUpVirtualizedItem(Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides)->OnCleanUpVirtualizedItem(*(void**)(&e)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::AreScrollSnapPointsRegularProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->get_AreScrollSnapPointsRegularProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::VirtualizationModeProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->get_VirtualizationModeProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::GetVirtualizationMode(Windows::UI::Xaml::DependencyObject const& element) const
    {
        Windows::UI::Xaml::Controls::VirtualizationMode result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->GetVirtualizationMode(*(void**)(&element), put_abi(result)));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::SetVirtualizationMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::VirtualizationMode const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->SetVirtualizationMode(*(void**)(&element), static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::IsVirtualizingProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->get_IsVirtualizingProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::GetIsVirtualizing(Windows::UI::Xaml::DependencyObject const& o) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->GetIsVirtualizing(*(void**)(&o), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::Source() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->get_Source(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::Source(Windows::Foundation::Uri const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->put_Source(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::AllowedScriptNotifyUris() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->get_AllowedScriptNotifyUris(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::AllowedScriptNotifyUris(param::vector<Windows::Foundation::Uri> const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->put_AllowedScriptNotifyUris(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::DataTransferPackage() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->get_DataTransferPackage(&value));
        return Windows::ApplicationModel::DataTransfer::DataPackage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_LoadCompleted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted_revoker consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(auto_revoke_t, Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, LoadCompleted_revoker>(this, LoadCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->remove_LoadCompleted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(Windows::UI::Xaml::Controls::NotifyEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_ScriptNotify(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify_revoker consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(auto_revoke_t, Windows::UI::Xaml::Controls::NotifyEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ScriptNotify_revoker>(this, ScriptNotify(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->remove_ScriptNotify(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_NavigationFailed(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed_revoker consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(auto_revoke_t, Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, NavigationFailed_revoker>(this, NavigationFailed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->remove_NavigationFailed(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::InvokeScript(param::hstring const& scriptName, array_view<hstring const> arguments) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->InvokeScript(*(void**)(&scriptName), arguments.size(), get_abi(arguments), &result));
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::Navigate(Windows::Foundation::Uri const& source) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->Navigate(*(void**)(&source)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigateToString(param::hstring const& text) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView)->NavigateToString(*(void**)(&text)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::CanGoBack() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->get_CanGoBack(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::CanGoForward() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->get_CanGoForward(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DocumentTitle() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->get_DocumentTitle(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_NavigationStarting(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, NavigationStarting_revoker>(this, NavigationStarting(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_NavigationStarting(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_ContentLoading(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ContentLoading_revoker>(this, ContentLoading(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_ContentLoading(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_DOMContentLoaded(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DOMContentLoaded_revoker>(this, DOMContentLoaded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_DOMContentLoaded(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::GoForward() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->GoForward());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::GoBack() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->GoBack());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::Refresh() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->Refresh());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::Stop() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->Stop());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::CapturePreviewToStreamAsync(Windows::Storage::Streams::IRandomAccessStream const& stream) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->CapturePreviewToStreamAsync(*(void**)(&stream), &operation));
        return Windows::Foundation::IAsyncAction{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::InvokeScriptAsync(param::hstring const& scriptName, param::async_iterable<hstring> const& arguments) const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->InvokeScriptAsync(*(void**)(&scriptName), *(void**)(&arguments), &operation));
        return Windows::Foundation::IAsyncOperation<hstring>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::CaptureSelectedContentToDataPackageAsync() const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->CaptureSelectedContentToDataPackageAsync(&operation));
        return Windows::Foundation::IAsyncOperation<Windows::ApplicationModel::DataTransfer::DataPackage>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigateToLocalStreamUri(Windows::Foundation::Uri const& source, Windows::Web::IUriToStreamResolver const& streamResolver) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->NavigateToLocalStreamUri(*(void**)(&source), *(void**)(&streamResolver)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::BuildLocalStreamUri(param::hstring const& contentIdentifier, param::hstring const& relativePath) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->BuildLocalStreamUri(*(void**)(&contentIdentifier), *(void**)(&relativePath), &result));
        return Windows::Foundation::Uri{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DefaultBackgroundColor() const
    {
        Windows::UI::Color value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->get_DefaultBackgroundColor(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DefaultBackgroundColor(Windows::UI::Color const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->put_DefaultBackgroundColor(impl::bind_in(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_NavigationCompleted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, NavigationCompleted_revoker>(this, NavigationCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_NavigationCompleted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameNavigationStarting(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FrameNavigationStarting_revoker>(this, FrameNavigationStarting(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameNavigationStarting(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameContentLoading(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FrameContentLoading_revoker>(this, FrameContentLoading(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameContentLoading(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameDOMContentLoaded(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FrameDOMContentLoaded_revoker>(this, FrameDOMContentLoaded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameDOMContentLoaded(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameNavigationCompleted(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FrameNavigationCompleted_revoker>(this, FrameNavigationCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameNavigationCompleted(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_LongRunningScriptDetected(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, LongRunningScriptDetected_revoker>(this, LongRunningScriptDetected(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_LongRunningScriptDetected(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_UnsafeContentWarningDisplaying(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, UnsafeContentWarningDisplaying_revoker>(this, UnsafeContentWarningDisplaying(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_UnsafeContentWarningDisplaying(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_UnviewableContentIdentified(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified_revoker consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, UnviewableContentIdentified_revoker>(this, UnviewableContentIdentified(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_UnviewableContentIdentified(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigateWithHttpRequestMessage(Windows::Web::Http::HttpRequestMessage const& requestMessage) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->NavigateWithHttpRequestMessage(*(void**)(&requestMessage)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
    {
        bool result;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView2)->Focus(static_cast<int32_t>(value), &result));
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElement() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView3)->get_ContainsFullScreenElement(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView3)->add_ContainsFullScreenElementChanged(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged_revoker consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, ContainsFullScreenElementChanged_revoker>(this, ContainsFullScreenElementChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView3)->remove_ContainsFullScreenElementChanged(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::ExecutionMode() const
    {
        Windows::UI::Xaml::Controls::WebViewExecutionMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->get_ExecutionMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::DeferredPermissionRequests() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->get_DeferredPermissionRequests(&value));
        return Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::Settings() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->get_Settings(&value));
        return Windows::UI::Xaml::Controls::WebViewSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_UnsupportedUriSchemeIdentified(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified_revoker consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, UnsupportedUriSchemeIdentified_revoker>(this, UnsupportedUriSchemeIdentified(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->remove_UnsupportedUriSchemeIdentified(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_NewWindowRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested_revoker consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, NewWindowRequested_revoker>(this, NewWindowRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->remove_NewWindowRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_PermissionRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested_revoker consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PermissionRequested_revoker>(this, PermissionRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->remove_PermissionRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::AddWebAllowedObject(param::hstring const& name, Windows::Foundation::IInspectable const& pObject) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->AddWebAllowedObject(*(void**)(&name), *(void**)(&pObject)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::DeferredPermissionRequestById(uint32_t id) const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView4)->DeferredPermissionRequestById(id, &result));
        return Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusLeft() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView5)->get_XYFocusLeft(&value));
        return Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusLeft(Windows::UI::Xaml::DependencyObject const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView5)->put_XYFocusLeft(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusRight() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView5)->get_XYFocusRight(&value));
        return Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusRight(Windows::UI::Xaml::DependencyObject const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView5)->put_XYFocusRight(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusUp() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView5)->get_XYFocusUp(&value));
        return Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusUp(Windows::UI::Xaml::DependencyObject const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView5)->put_XYFocusUp(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusDown() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView5)->get_XYFocusDown(&value));
        return Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusDown(Windows::UI::Xaml::DependencyObject const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView5)->put_XYFocusDown(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView6)->add_SeparateProcessLost(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost_revoker consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SeparateProcessLost_revoker>(this, SeparateProcessLost(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView6)->remove_SeparateProcessLost(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView7<D>::WebResourceRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> const& handler) const
    {
        winrt::event_token token;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView7)->add_WebResourceRequested(*(void**)(&handler), put_abi(token)));
        return token;
    }
    template <typename D> typename consume_Windows_UI_Xaml_Controls_IWebView7<D>::WebResourceRequested_revoker consume_Windows_UI_Xaml_Controls_IWebView7<D>::WebResourceRequested(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, WebResourceRequested_revoker>(this, WebResourceRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView7<D>::WebResourceRequested(winrt::event_token const& token) const noexcept
    {
        WINRT_VERIFY_(0, WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebView7)->remove_WebResourceRequested(impl::bind_in(token)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SourceName() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewBrush)->get_SourceName(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SourceName(param::hstring const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewBrush)->put_SourceName(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::Redraw() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewBrush)->Redraw());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SetSource(Windows::UI::Xaml::Controls::WebView const& source) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewBrush)->SetSource(*(void**)(&source)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrushStatics<D>::SourceNameProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewBrushStatics)->get_SourceNameProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewContentLoadingEventArgs<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDOMContentLoadedEventArgs<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::PermissionType() const
    {
        Windows::UI::Xaml::Controls::WebViewPermissionType value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->get_PermissionType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Id() const
    {
        uint32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->get_Id(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Allow() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->Allow());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Deny() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->Deny());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewFactory4<D>::CreateInstanceWithExecutionMode(Windows::UI::Xaml::Controls::WebViewExecutionMode const& executionMode) const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewFactory4)->CreateInstanceWithExecutionMode(static_cast<int32_t>(executionMode), &value));
        return Windows::UI::Xaml::Controls::WebView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::ExecutionTime() const
    {
        Windows::Foundation::TimeSpan value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs)->get_ExecutionTime(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::StopPageScriptExecution() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs)->get_StopPageScriptExecution(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::StopPageScriptExecution(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs)->put_StopPageScriptExecution(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::IsSuccess() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs)->get_IsSuccess(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::WebErrorStatus() const
    {
        Windows::Web::WebErrorStatus value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs)->get_WebErrorStatus(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationFailedEventArgs<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationFailedEventArgs<D>::WebErrorStatus() const
    {
        Windows::Web::WebErrorStatus value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs)->get_WebErrorStatus(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Cancel() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs)->get_Cancel(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Cancel(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs)->put_Cancel(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Referrer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs)->get_Referrer(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::PermissionType() const
    {
        Windows::UI::Xaml::Controls::WebViewPermissionType value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->get_PermissionType(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Id() const
    {
        uint32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->get_Id(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::State() const
    {
        Windows::UI::Xaml::Controls::WebViewPermissionState value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->get_State(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Defer() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->Defer());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Allow() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->Allow());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Deny() const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->Deny());
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequestedEventArgs<D>::PermissionRequest() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs)->get_PermissionRequest(&value));
        return Windows::UI::Xaml::Controls::WebViewPermissionRequest{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsJavaScriptEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewSettings)->get_IsJavaScriptEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsJavaScriptEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewSettings)->put_IsJavaScriptEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsIndexedDBEnabled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewSettings)->get_IsIndexedDBEnabled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsIndexedDBEnabled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewSettings)->put_IsIndexedDBEnabled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::AnyScriptNotifyUri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics)->get_AnyScriptNotifyUri(&value));
        return Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::SourceProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics)->get_SourceProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::AllowedScriptNotifyUrisProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics)->get_AllowedScriptNotifyUrisProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::DataTransferPackageProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics)->get_DataTransferPackageProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::CanGoBackProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics2)->get_CanGoBackProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::CanGoForwardProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics2)->get_CanGoForwardProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::DocumentTitleProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics2)->get_DocumentTitleProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::DefaultBackgroundColorProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics2)->get_DefaultBackgroundColorProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics3<D>::ContainsFullScreenElementProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics3)->get_ContainsFullScreenElementProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics4<D>::DefaultExecutionMode() const
    {
        Windows::UI::Xaml::Controls::WebViewExecutionMode value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics4)->get_DefaultExecutionMode(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics4<D>::ClearTemporaryWebDataAsync() const
    {
        void* operation{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics4)->ClearTemporaryWebDataAsync(&operation));
        return Windows::Foundation::IAsyncAction{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusLeftProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics5)->get_XYFocusLeftProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusRightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics5)->get_XYFocusRightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusUpProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics5)->get_XYFocusUpProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusDownProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics5)->get_XYFocusDownProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Handled() const
    {
        bool value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs)->get_Handled(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Handled(bool value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs)->put_Handled(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs<D>::Uri() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs)->get_Uri(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs<D>::Referrer() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs)->get_Referrer(&value));
        return Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs2<D>::MediaType() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2)->get_MediaType(&value));
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Request() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs)->get_Request(&value));
        return Windows::Web::Http::HttpRequestMessage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Response() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs)->get_Response(&value));
        return Windows::Web::Http::HttpResponseMessage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Response(Windows::Web::Http::HttpResponseMessage const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs)->put_Response(*(void**)(&value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::GetDeferral() const
    {
        void* result{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs)->GetDeferral(&result));
        return Windows::Foundation::Deferral{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemWidth() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_ItemWidth(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemWidth(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_ItemWidth(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemHeight() const
    {
        double value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_ItemHeight(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemHeight(double value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_ItemHeight(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::Orientation() const
    {
        Windows::UI::Xaml::Controls::Orientation value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_Orientation(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_Orientation(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::HorizontalChildrenAlignment() const
    {
        Windows::UI::Xaml::HorizontalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_HorizontalChildrenAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_HorizontalChildrenAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::VerticalChildrenAlignment() const
    {
        Windows::UI::Xaml::VerticalAlignment value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_VerticalChildrenAlignment(put_abi(value)));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_VerticalChildrenAlignment(static_cast<int32_t>(value)));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::MaximumRowsOrColumns() const
    {
        int32_t value;
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_MaximumRowsOrColumns(&value));
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
    {
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_MaximumRowsOrColumns(value));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::ItemWidthProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_ItemWidthProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::ItemHeightProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_ItemHeightProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::OrientationProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_OrientationProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::HorizontalChildrenAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_HorizontalChildrenAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::VerticalChildrenAlignmentProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_VerticalChildrenAlignmentProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
    {
        void* value{};
        check_hresult(WINRT_IMPL_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_MaximumRowsOrColumnsProperty(&value));
        return Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename H> struct delegate<Windows::UI::Xaml::Controls::BackClickEventHandler, H> : implements_delegate<Windows::UI::Xaml::Controls::BackClickEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::BackClickEventHandler, H>(std::forward<H>(handler)) {}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>
    {
        int32_t __stdcall get_Anchor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Anchor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Anchor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Anchor(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AnchorCandidates(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::UIElement>>(this->shim().AnchorCandidates());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBar> : produce_base<D, Windows::UI::Xaml::Controls::IAppBar>
    {
        int32_t __stdcall get_IsOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSticky(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSticky());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSticky(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSticky(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBar2> : produce_base<D, Windows::UI::Xaml::Controls::IAppBar2>
    {
        int32_t __stdcall get_ClosedDisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarClosedDisplayMode>(this->shim().ClosedDisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ClosedDisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClosedDisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::AppBarClosedDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBar3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBar3>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Opening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opening(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closing(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closing(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closing(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closing(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBar4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBar4>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarButton> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButton>
    {
        int32_t __stdcall get_Label(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Label());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Label(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Label(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarButton3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButton3>
    {
        int32_t __stdcall get_LabelPosition(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarLabelPosition>(this->shim().LabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LabelPosition(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LabelPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarLabelPosition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarButton4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButton4>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverride(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_KeyboardAcceleratorTextOverride(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarButton5> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButton5>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics>
    {
        int32_t __stdcall get_LabelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>
    {
        int32_t __stdcall get_LabelPositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsInOverflowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics4>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarElementContainer> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarElementContainer>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarElementContainerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarElementContainerFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarElementContainer>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarElementContainerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>
    {
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsInOverflowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarFactory> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarOverrides>
    {
        int32_t __stdcall OnClosed(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClosed(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnOpened(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOpened(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarOverrides3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarOverrides3>
    {
        int32_t __stdcall OnClosing(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClosing(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnOpening(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOpening(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarSeparator> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarSeparator>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarSeparatorFactory> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>
    {
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>
    {
        int32_t __stdcall get_IsInOverflowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarStatics>
    {
        int32_t __stdcall get_IsOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStickyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStickyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarStatics2>
    {
        int32_t __stdcall get_ClosedDisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClosedDisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarStatics4>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButton> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButton>
    {
        int32_t __stdcall get_Label(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Label());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Label(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Label(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButton3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButton3>
    {
        int32_t __stdcall get_LabelPosition(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarLabelPosition>(this->shim().LabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LabelPosition(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LabelPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarLabelPosition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButton4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButton4>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverride(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_KeyboardAcceleratorTextOverride(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButton5> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButton5>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarToggleButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>
    {
        int32_t __stdcall get_LabelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>
    {
        int32_t __stdcall get_LabelPositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsInOverflowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBox> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBox>
    {
        int32_t __stdcall get_MaxSuggestionListHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxSuggestionListHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxSuggestionListHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxSuggestionListHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSuggestionListOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSuggestionListOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSuggestionListOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSuggestionListOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextMemberPath(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().TextMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextMemberPath(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UpdateTextOnSelect(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UpdateTextOnSelect());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UpdateTextOnSelect(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UpdateTextOnSelect(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoMaximizeSuggestionArea(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoMaximizeSuggestionArea());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AutoMaximizeSuggestionArea(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoMaximizeSuggestionArea(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextBoxStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().TextBoxStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextBoxStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextBoxStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SuggestionChosen(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SuggestionChosen(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SuggestionChosen(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SuggestionChosen(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBox2> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBox2>
    {
        int32_t __stdcall get_QueryIcon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().QueryIcon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_QueryIcon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryIcon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_QuerySubmitted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().QuerySubmitted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_QuerySubmitted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QuerySubmitted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBox3> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBox3>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBox4> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBox4>
    {
        int32_t __stdcall get_Description(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>
    {
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChosenSuggestion(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ChosenSuggestion());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>
    {
        int32_t __stdcall get_MaxSuggestionListHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxSuggestionListHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSuggestionListOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSuggestionListOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextMemberPathProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UpdateTextOnSelectProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UpdateTextOnSelectProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoMaximizeSuggestionAreaProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoMaximizeSuggestionAreaProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextBoxStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextBoxStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>
    {
        int32_t __stdcall get_QueryIconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().QueryIconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4>
    {
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs>
    {
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>
    {
        int32_t __stdcall get_Reason(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason>(this->shim().Reason());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Reason(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Reason(*reinterpret_cast<Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CheckCurrent(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().CheckCurrent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics>
    {
        int32_t __stdcall get_ReasonProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ReasonProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBackClickEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IBackClickEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBitmapIcon> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIcon>
    {
        int32_t __stdcall get_UriSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().UriSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UriSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UriSource(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBitmapIcon2> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIcon2>
    {
        int32_t __stdcall get_ShowAsMonochrome(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAsMonochrome());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowAsMonochrome(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAsMonochrome(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconFactory> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::BitmapIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconSource> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconSource>
    {
        int32_t __stdcall get_UriSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().UriSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UriSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UriSource(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowAsMonochrome(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAsMonochrome());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowAsMonochrome(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAsMonochrome(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::BitmapIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>
    {
        int32_t __stdcall get_UriSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UriSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowAsMonochromeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAsMonochromeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconStatics> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconStatics>
    {
        int32_t __stdcall get_UriSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UriSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconStatics2>
    {
        int32_t __stdcall get_ShowAsMonochromeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAsMonochromeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBorder> : produce_base<D, Windows::UI::Xaml::Controls::IBorder>
    {
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Child(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Child(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ChildTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ChildTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChildTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBorder2> : produce_base<D, Windows::UI::Xaml::Controls::IBorder2>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundTransition(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundTransition(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundTransition(*reinterpret_cast<Windows::UI::Xaml::BrushTransition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBorderStatics> : produce_base<D, Windows::UI::Xaml::Controls::IBorderStatics>
    {
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IBorderStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IBorderStatics2>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IButton> : produce_base<D, Windows::UI::Xaml::Controls::IButton>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Button>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout>
    {
        int32_t __stdcall get_FlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IButtonWithFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IButtonWithFlyout>
    {
        int32_t __stdcall get_Flyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().Flyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Flyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Flyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePicker> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePicker>
    {
        int32_t __stdcall get_Date(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Date(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<Windows::Foundation::IReference<Windows::Foundation::DateTime> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCalendarOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCalendarOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCalendarOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCalendarOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DateFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DateFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarViewStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CalendarViewStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarViewStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinDate(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinDate(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDate(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxDate(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTodayHighlighted(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTodayHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTodayHighlighted(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTodayHighlighted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstDayOfWeek(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Globalization::DayOfWeek>(this->shim().FirstDayOfWeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstDayOfWeek(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstDayOfWeek(*reinterpret_cast<Windows::Globalization::DayOfWeek const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayOfWeekFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayOfWeekFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayOfWeekFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayOfWeekFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOutOfScopeEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOutOfScopeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOutOfScopeEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOutOfScopeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupLabelVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroupLabelVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsGroupLabelVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroupLabelVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CalendarViewDayItemChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CalendarViewDayItemChanging(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CalendarViewDayItemChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DateChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarDatePicker, Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetDisplayDate(int64_t date) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDisplayDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&date));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetYearDecadeDisplayDimensions(columns, rows);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePicker2> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePicker2>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePicker3> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePicker3>
    {
        int32_t __stdcall get_Description(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>
    {
        int32_t __stdcall get_NewDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OldDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarDatePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>
    {
        int32_t __stdcall get_DateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCalendarOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCalendarOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarViewStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarViewStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTodayHighlightedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTodayHighlightedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstDayOfWeekProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstDayOfWeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayOfWeekFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayOfWeekFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOutOfScopeEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOutOfScopeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupLabelVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupLabelVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3>
    {
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarView> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarView>
    {
        int32_t __stdcall get_CalendarIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayOfWeekFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayOfWeekFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayOfWeekFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayOfWeekFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupLabelVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroupLabelVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsGroupLabelVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroupLabelVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstDayOfWeek(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Globalization::DayOfWeek>(this->shim().FirstDayOfWeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstDayOfWeek(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstDayOfWeek(*reinterpret_cast<Windows::Globalization::DayOfWeek const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOutOfScopeEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOutOfScopeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOutOfScopeEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOutOfScopeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTodayHighlighted(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTodayHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTodayHighlighted(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTodayHighlighted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDate(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxDate(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinDate(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinDate(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NumberOfWeeksInView(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NumberOfWeeksInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_NumberOfWeeksInView(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NumberOfWeeksInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedDates(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::DateTime>>(this->shim().SelectedDates());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().FocusBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FocusBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedHoverBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedHoverBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedHoverBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedHoverBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedPressedBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedPressedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedPressedBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedPressedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HoverBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HoverBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HoverBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HoverBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PressedBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PressedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PressedBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PressedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OutOfScopeBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OutOfScopeBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PressedForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PressedForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PressedForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PressedForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().TodayForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BlackoutForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BlackoutForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BlackoutForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BlackoutForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OutOfScopeForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OutOfScopeForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().DayItemFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemFontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DayItemFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemFontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().DayItemFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemFontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().DayItemFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().TodayFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FirstOfMonthLabelFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelFontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FirstOfMonthLabelFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelFontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FirstOfMonthLabelFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelFontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FirstOfMonthLabelFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().MonthYearItemFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemFontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MonthYearItemFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemFontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().MonthYearItemFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemFontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().MonthYearItemFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FirstOfYearDecadeLabelFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelFontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FirstOfYearDecadeLabelFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelFontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FirstOfYearDecadeLabelFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelFontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FirstOfYearDecadeLabelFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalDayItemAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalDayItemAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalDayItemAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalDayItemAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalDayItemAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalDayItemAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalDayItemAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalDayItemAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalFirstOfMonthLabelAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalFirstOfMonthLabelAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalFirstOfMonthLabelAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalFirstOfMonthLabelAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalFirstOfMonthLabelAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalFirstOfMonthLabelAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalFirstOfMonthLabelAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalFirstOfMonthLabelAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().CalendarItemBorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemBorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarViewDayItemStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CalendarViewDayItemStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarViewDayItemStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CalendarViewDayItemChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CalendarViewDayItemChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CalendarViewDayItemChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SelectedDatesChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectedDatesChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectedDatesChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDatesChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetDisplayDate(int64_t date) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDisplayDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&date));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetYearDecadeDisplayDimensions(columns, rows);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewDayItem> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewDayItem>
    {
        int32_t __stdcall get_IsBlackout(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsBlackout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsBlackout(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBlackout(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Date(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetDensityColors(void* colors) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDensityColors(*reinterpret_cast<Windows::Foundation::Collections::IIterable<Windows::UI::Color> const*>(&colors));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>
    {
        int32_t __stdcall get_InRecycleQueue(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().InRecycleQueue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDayItem>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Phase(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Phase());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterUpdateCallback(void* callback) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&callback));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterUpdateCallbackWithPhase(uint32_t callbackPhase, void* callback) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(callbackPhase, *reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&callback));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDayItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>
    {
        int32_t __stdcall get_IsBlackoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBlackoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>
    {
        int32_t __stdcall get_AddedDates(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>>(this->shim().AddedDates());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RemovedDates(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>>(this->shim().RemovedDates());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewStatics>
    {
        int32_t __stdcall get_CalendarIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayOfWeekFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayOfWeekFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupLabelVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupLabelVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstDayOfWeekProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstDayOfWeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOutOfScopeEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOutOfScopeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTodayHighlightedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTodayHighlightedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NumberOfWeeksInViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NumberOfWeeksInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedDatesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedDatesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettingsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FocusBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedHoverBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedHoverBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedPressedBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedPressedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HoverBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HoverBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PressedBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PressedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PressedForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PressedForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TodayForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BlackoutForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BlackoutForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TodayFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalDayItemAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalDayItemAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalDayItemAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalDayItemAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalFirstOfMonthLabelAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalFirstOfMonthLabelAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalFirstOfMonthLabelAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalFirstOfMonthLabelAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarViewDayItemStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarViewDayItemStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs>
    {
        int32_t __stdcall get_Bounds(Windows::Foundation::Rect* value) noexcept final try
        {
            zero_abi<Windows::Foundation::Rect>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Rect>(this->shim().Bounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICanvas> : produce_base<D, Windows::UI::Xaml::Controls::ICanvas>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICanvasFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICanvasFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Canvas>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICanvasStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICanvasStatics>
    {
        int32_t __stdcall get_LeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLeft(void* element, double* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().GetLeft(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLeft(void* element, double length) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLeft(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), length);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetTop(void* element, double* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().GetTop(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetTop(void* element, double length) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetTop(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), length);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetZIndex(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetZIndex(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetZIndex(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetZIndex(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICaptureElement> : produce_base<D, Windows::UI::Xaml::Controls::ICaptureElement>
    {
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Capture::MediaCapture>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::Media::Capture::MediaCapture const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICaptureElementStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICaptureElementStatics>
    {
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICheckBox> : produce_base<D, Windows::UI::Xaml::Controls::ICheckBox>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICheckBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICheckBoxFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CheckBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>
    {
        int32_t __stdcall get_GroupHeaderContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewBaseHeaderItem>(this->shim().GroupHeaderContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupHeaderContainer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderContainer(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewBaseHeaderItem const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GroupIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Group(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Group());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>
    {
        int32_t __stdcall get_ItemIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().ItemIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SelectorItem>(this->shim().ItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainer(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SelectorItem const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsContainerPrepared(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContainerPrepared());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsContainerPrepared(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsContainerPrepared(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>
    {
        int32_t __stdcall get_Value(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Value());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UIElement(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().UIElement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IColorChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IColorChangedEventArgs>
    {
        int32_t __stdcall get_OldColor(struct struct_Windows_UI_Color* value) noexcept final try
        {
            zero_abi<Windows::UI::Color>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Color>(this->shim().OldColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewColor(struct struct_Windows_UI_Color* value) noexcept final try
        {
            zero_abi<Windows::UI::Color>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Color>(this->shim().NewColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IColorPicker> : produce_base<D, Windows::UI::Xaml::Controls::IColorPicker>
    {
        int32_t __stdcall get_Color(struct struct_Windows_UI_Color* value) noexcept final try
        {
            zero_abi<Windows::UI::Color>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Color>(this->shim().Color());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Color(struct struct_Windows_UI_Color value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Color(*reinterpret_cast<Windows::UI::Color const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreviousColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::UI::Color>>(this->shim().PreviousColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreviousColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreviousColor(*reinterpret_cast<Windows::Foundation::IReference<Windows::UI::Color> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAlphaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsAlphaEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorSpectrumVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorSpectrumVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorSpectrumVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorSpectrumVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorPreviewVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorPreviewVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorPreviewVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorPreviewVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorSliderVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorSliderVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorSliderVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorSliderVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaSliderVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAlphaSliderVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsAlphaSliderVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaSliderVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMoreButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsMoreButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsMoreButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMoreButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorChannelTextInputVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorChannelTextInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorChannelTextInputVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorChannelTextInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaTextInputVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAlphaTextInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsAlphaTextInputVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaTextInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHexInputVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHexInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHexInputVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHexInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinHue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinHue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinHue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinHue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxHue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxHue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinSaturation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinSaturation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinSaturation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinSaturation(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxSaturation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxSaturation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxSaturation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxSaturation(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinValue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinValue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxValue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxValue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColorSpectrumShape(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ColorSpectrumShape>(this->shim().ColorSpectrumShape());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ColorSpectrumShape(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorSpectrumShape(*reinterpret_cast<Windows::UI::Xaml::Controls::ColorSpectrumShape const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColorSpectrumComponents(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ColorSpectrumComponents>(this->shim().ColorSpectrumComponents());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ColorSpectrumComponents(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorSpectrumComponents(*reinterpret_cast<Windows::UI::Xaml::Controls::ColorSpectrumComponents const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ColorChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ColorChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ColorPicker, Windows::UI::Xaml::Controls::ColorChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ColorChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IColorPickerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IColorPickerFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ColorPicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IColorPickerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IColorPickerStatics>
    {
        int32_t __stdcall get_ColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreviousColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreviousColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorSpectrumVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorSpectrumVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorPreviewVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorPreviewVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorSliderVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorSliderVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaSliderVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaSliderVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMoreButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsMoreButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorChannelTextInputVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorChannelTextInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaTextInputVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaTextInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHexInputVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHexInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinHueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinHueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinSaturationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinSaturationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxSaturationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxSaturationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColorSpectrumShapeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColorSpectrumShapeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColorSpectrumComponentsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColorSpectrumComponentsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IColumnDefinition> : produce_base<D, Windows::UI::Xaml::Controls::IColumnDefinition>
    {
        int32_t __stdcall get_Width(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::GridLength>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::GridLength>(this->shim().Width());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Width(struct struct_Windows_UI_Xaml_GridLength value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Width(*reinterpret_cast<Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActualWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ActualWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IColumnDefinitionStatics> : produce_base<D, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>
    {
        int32_t __stdcall get_WidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().WidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBox> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox>
    {
        int32_t __stdcall get_IsDropDownOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDropDownOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDropDownOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDropDownOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsEditable(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsEditable());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSelectionBoxHighlighted(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSelectionBoxHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDropDownHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxDropDownHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxDropDownHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDropDownHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionBoxItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectionBoxItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionBoxItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectionBoxItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DropDownClosed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DropDownClosed(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DropDownClosed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DropDownClosed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DropDownOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DropDownOpened(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DropDownOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DropDownOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBox2> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBox3> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox3>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSearchEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSearchEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextSearchEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSearchEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBox4> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox4>
    {
        int32_t __stdcall get_SelectionChangedTrigger(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger>(this->shim().SelectionChangedTrigger());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionChangedTrigger(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChangedTrigger(*reinterpret_cast<Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBox5> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox5>
    {
        int32_t __stdcall get_PlaceholderForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PlaceholderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBox6> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox6>
    {
        int32_t __stdcall put_IsEditable(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsEditable(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextBoxStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().TextBoxStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextBoxStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextBoxStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Description(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TextSubmitted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextSubmitted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ComboBox, Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextSubmitted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextSubmitted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ComboBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxItem> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxItem>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ComboBoxItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxOverrides>
    {
        int32_t __stdcall OnDropDownClosed(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDropDownClosed(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDropDownOpened(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDropDownOpened(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics>
    {
        int32_t __stdcall get_IsDropDownOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDropDownOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDropDownHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDropDownHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics3>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSearchEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSearchEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics4>
    {
        int32_t __stdcall get_SelectionChangedTriggerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionChangedTriggerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics5>
    {
        int32_t __stdcall get_PlaceholderForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics6> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics6>
    {
        int32_t __stdcall get_IsEditableProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsEditableProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextBoxStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextBoxStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>
    {
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBar> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBar>
    {
        int32_t __stdcall get_PrimaryCommands(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().PrimaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryCommands(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().SecondaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBar2> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBar2>
    {
        int32_t __stdcall get_CommandBarOverflowPresenterStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CommandBarOverflowPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CommandBarOverflowPresenterStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandBarOverflowPresenterStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandBarTemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings>(this->shim().CommandBarTemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBar3> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBar3>
    {
        int32_t __stdcall get_DefaultLabelPosition(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition>(this->shim().DefaultLabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultLabelPosition(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultLabelPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowButtonVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility>(this->shim().OverflowButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OverflowButtonVisibility(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowButtonVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDynamicOverflowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDynamicOverflowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDynamicOverflowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDynamicOverflowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DynamicOverflowItemsChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DynamicOverflowItemsChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CommandBar, Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DynamicOverflowItemsChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DynamicOverflowItemsChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarElement> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarElement>
    {
        int32_t __stdcall get_IsCompact(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompact());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCompact(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompact(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarElement2> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarElement2>
    {
        int32_t __stdcall get_IsInOverflow(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsInOverflow());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DynamicOverflowOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DynamicOverflowOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DynamicOverflowOrder(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarFlyout> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarFlyout>
    {
        int32_t __stdcall get_PrimaryCommands(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().PrimaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryCommands(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().SecondaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarOverflowPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarStatics>
    {
        int32_t __stdcall get_PrimaryCommandsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryCommandsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryCommandsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryCommandsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarStatics2>
    {
        int32_t __stdcall get_CommandBarOverflowPresenterStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandBarOverflowPresenterStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ICommandBarStatics3> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarStatics3>
    {
        int32_t __stdcall get_DefaultLabelPositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultLabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowButtonVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDynamicOverflowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDynamicOverflowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>
    {
        int32_t __stdcall get_ItemContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SelectorItem>(this->shim().ItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InRecycleQueue(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().InRecycleQueue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().ItemIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Phase(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Phase());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterUpdateCallback(void* callback) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&callback));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterUpdateCallbackWithPhase(uint32_t callbackPhase, void* callback) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(callbackPhase, *reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&callback));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentControl> : produce_base<D, Windows::UI::Xaml::Controls::IContentControl>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ContentTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ContentTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentControl2> : produce_base<D, Windows::UI::Xaml::Controls::IContentControl2>
    {
        int32_t __stdcall get_ContentTemplateRoot(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ContentTemplateRoot());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IContentControlFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentControlOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IContentControlOverrides>
    {
        int32_t __stdcall OnContentChanged(void* oldContent, void* newContent) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&newContent));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnContentTemplateChanged(void* oldContentTemplate, void* newContentTemplate) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateChanged(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&oldContentTemplate), *reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&newContentTemplate));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnContentTemplateSelectorChanged(void* oldContentTemplateSelector, void* newContentTemplateSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldContentTemplateSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newContentTemplateSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IContentControlStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialog> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialog>
    {
        int32_t __stdcall get_Title(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Title(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TitleTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().TitleTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TitleTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TitleTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FullSizeDesired(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().FullSizeDesired());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FullSizeDesired(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FullSizeDesired(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PrimaryButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryButtonText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SecondaryButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryButtonText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonCommand(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().PrimaryButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryButtonCommand(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonCommand(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().SecondaryButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryButtonCommand(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonCommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().PrimaryButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryButtonCommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonCommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SecondaryButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryButtonCommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPrimaryButtonEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPrimaryButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPrimaryButtonEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPrimaryButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSecondaryButtonEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSecondaryButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSecondaryButtonEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSecondaryButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Closing(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closing(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closing(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closing(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PrimaryButtonClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PrimaryButtonClick(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PrimaryButtonClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SecondaryButtonClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SecondaryButtonClick(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SecondaryButtonClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Hide() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ShowAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult>>(this->shim().ShowAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialog2> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialog2>
    {
        int32_t __stdcall get_CloseButtonText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CloseButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CloseButtonText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonCommand(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().CloseButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CloseButtonCommand(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonCommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CloseButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CloseButtonCommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().PrimaryButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryButtonStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().SecondaryButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryButtonStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CloseButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CloseButtonStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultButton(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialogButton>(this->shim().DefaultButton());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultButton(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultButton(*reinterpret_cast<Windows::UI::Xaml::Controls::ContentDialogButton const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CloseButtonClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CloseButtonClick(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CloseButtonClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialog3> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialog3>
    {
        int32_t __stdcall ShowAsyncWithPlacement(int32_t placement, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult>>(this->shim().ShowAsync(*reinterpret_cast<Windows::UI::Xaml::Controls::ContentDialogPlacement const*>(&placement)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral>
    {
        int32_t __stdcall Complete() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Complete();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetDeferral(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral>(this->shim().GetDeferral());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs>
    {
        int32_t __stdcall get_Result(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialogResult>(this->shim().Result());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogClosingDeferral> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogClosingDeferral>
    {
        int32_t __stdcall Complete() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Complete();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>
    {
        int32_t __stdcall get_Result(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialogResult>(this->shim().Result());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetDeferral(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ContentDialogClosingDeferral>(this->shim().GetDeferral());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogFactory> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialog>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogOpenedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogOpenedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogStatics> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogStatics>
    {
        int32_t __stdcall get_TitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TitleTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FullSizeDesiredProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FullSizeDesiredProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonCommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonCommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonCommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonCommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPrimaryButtonEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPrimaryButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSecondaryButtonEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSecondaryButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentDialogStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogStatics2>
    {
        int32_t __stdcall get_CloseButtonTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonCommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonCommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultButtonProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultButtonProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>
    {
        int32_t __stdcall get_ChangeKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentLinkChangeKind>(this->shim().ChangeKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkInfo(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::ContentLinkInfo>(this->shim().ContentLinkInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextRange(struct struct_Windows_UI_Xaml_Documents_TextRange* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Documents::TextRange>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextRange>(this->shim().TextRange());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ContentTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ContentTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterSpacing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter2>
    {
        int32_t __stdcall get_OpticalMarginAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpticalMarginAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBounds(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextLineBounds(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<Windows::UI::Xaml::TextLineBounds const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter3> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter4> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter4>
    {
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLines(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLines(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategy(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineStackingStrategy(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalContentAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalContentAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalContentAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalContentAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter5> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter5>
    {
        int32_t __stdcall get_BackgroundTransition(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundTransition(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundTransition(*reinterpret_cast<Windows::UI::Xaml::BrushTransition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterOverrides>
    {
        int32_t __stdcall OnContentTemplateChanged(void* oldContentTemplate, void* newContentTemplate) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateChanged(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&oldContentTemplate), *reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&newContentTemplate));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnContentTemplateSelectorChanged(void* oldContentTemplateSelector, void* newContentTemplateSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldContentTemplateSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newContentTemplateSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics2>
    {
        int32_t __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics4>
    {
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLinesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalContentAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalContentAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics5>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IContextMenuEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContextMenuEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CursorLeft(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CursorLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CursorTop(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CursorTop());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControl> : produce_base<D, Windows::UI::Xaml::Controls::IControl>
    {
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterSpacing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTabStop(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTabStop());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTabStop(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTabStop(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TabIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().TabIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TabIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TabIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TabNavigation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::KeyboardNavigationMode>(this->shim().TabNavigation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TabNavigation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TabNavigation(*reinterpret_cast<Windows::UI::Xaml::Input::KeyboardNavigationMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Template(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ControlTemplate>(this->shim().Template());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Template(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Template(*reinterpret_cast<Windows::UI::Xaml::Controls::ControlTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalContentAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalContentAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalContentAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalContentAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusState(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::FocusState>(this->shim().FocusState());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsEnabledChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsEnabledChanged(*reinterpret_cast<Windows::UI::Xaml::DependencyPropertyChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsEnabledChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsEnabledChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ApplyTemplate(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().ApplyTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControl2> : produce_base<D, Windows::UI::Xaml::Controls::IControl2>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControl3> : produce_base<D, Windows::UI::Xaml::Controls::IControl3>
    {
        int32_t __stdcall get_UseSystemFocusVisuals(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UseSystemFocusVisuals());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UseSystemFocusVisuals(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UseSystemFocusVisuals(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControl4> : produce_base<D, Windows::UI::Xaml::Controls::IControl4>
    {
        int32_t __stdcall get_IsFocusEngagementEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFocusEngagementEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFocusEngagementEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFocusEngagementEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFocusEngaged(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFocusEngaged());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFocusEngaged(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFocusEngaged(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RequiresPointer(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RequiresPointer>(this->shim().RequiresPointer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RequiresPointer(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequiresPointer(*reinterpret_cast<Windows::UI::Xaml::Controls::RequiresPointer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusLeft(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusLeft(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusLeft(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusRight(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusRight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusRight(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusRight(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusUp(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusUp());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusUp(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusUp(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusDown(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusDown());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusDown(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusDown(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ElementSoundMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::ElementSoundMode>(this->shim().ElementSoundMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ElementSoundMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ElementSoundMode(*reinterpret_cast<Windows::UI::Xaml::ElementSoundMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_FocusEngaged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FocusEngaged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FocusEngaged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusEngaged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FocusDisengaged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FocusDisengaged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FocusDisengaged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusDisengaged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall RemoveFocusEngagement() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveFocusEngagement();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControl5> : produce_base<D, Windows::UI::Xaml::Controls::IControl5>
    {
        int32_t __stdcall get_DefaultStyleResourceUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().DefaultStyleResourceUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultStyleResourceUri(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultStyleResourceUri(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControl7> : produce_base<D, Windows::UI::Xaml::Controls::IControl7>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IControlFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Control>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IControlOverrides>
    {
        int32_t __stdcall OnPointerEntered(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerEntered(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerPressed(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerPressed(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerMoved(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerMoved(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerReleased(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerReleased(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerExited(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerExited(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerCaptureLost(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerCaptureLost(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerCanceled(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerCanceled(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerWheelChanged(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerWheelChanged(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnTapped(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnTapped(*reinterpret_cast<Windows::UI::Xaml::Input::TappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDoubleTapped(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDoubleTapped(*reinterpret_cast<Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnHolding(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnHolding(*reinterpret_cast<Windows::UI::Xaml::Input::HoldingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnRightTapped(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnRightTapped(*reinterpret_cast<Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationStarting(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationStarting(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationInertiaStarting(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationInertiaStarting(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationStarted(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationStarted(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationDelta(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationDelta(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationCompleted(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationCompleted(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnKeyUp(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnKeyUp(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnKeyDown(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnKeyDown(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnGotFocus(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnGotFocus(*reinterpret_cast<Windows::UI::Xaml::RoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnLostFocus(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnLostFocus(*reinterpret_cast<Windows::UI::Xaml::RoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDragEnter(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragEnter(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDragLeave(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragLeave(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDragOver(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragOver(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDrop(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDrop(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlOverrides6> : produce_base<D, Windows::UI::Xaml::Controls::IControlOverrides6>
    {
        int32_t __stdcall OnPreviewKeyDown(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPreviewKeyDown(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPreviewKeyUp(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPreviewKeyUp(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnCharacterReceived(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnCharacterReceived(*reinterpret_cast<Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlProtected> : produce_base<D, Windows::UI::Xaml::Controls::IControlProtected>
    {
        int32_t __stdcall get_DefaultStyleKey(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().DefaultStyleKey());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultStyleKey(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultStyleKey(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetTemplateChild(void* childName, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GetTemplateChild(*reinterpret_cast<hstring const*>(&childName)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics>
    {
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTabStopProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTabStopProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TabIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TabIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TabNavigationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TabNavigationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalContentAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalContentAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultStyleKeyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultStyleKeyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusStateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FocusStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics2>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics3>
    {
        int32_t __stdcall get_UseSystemFocusVisualsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UseSystemFocusVisualsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTemplateFocusTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTemplateFocusTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsTemplateFocusTarget(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsTemplateFocusTarget(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsTemplateFocusTarget(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsTemplateFocusTarget(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics4>
    {
        int32_t __stdcall get_IsFocusEngagementEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFocusEngagementEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFocusEngagedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFocusEngagedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RequiresPointerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RequiresPointerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusLeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusRightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusRightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusUpProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusUpProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusDownProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusDownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ElementSoundModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ElementSoundModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics5>
    {
        int32_t __stdcall get_DefaultStyleResourceUriProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultStyleResourceUriProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTemplateKeyTipTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTemplateKeyTipTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsTemplateKeyTipTarget(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsTemplateKeyTipTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsTemplateKeyTipTarget(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsTemplateKeyTipTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlStatics7> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics7>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IControlTemplate> : produce_base<D, Windows::UI::Xaml::Controls::IControlTemplate>
    {
        int32_t __stdcall get_TargetType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Interop::TypeName>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().TargetType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TargetType(struct struct_Windows_UI_Xaml_Interop_TypeName value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TargetType(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelector> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelector>
    {
        int32_t __stdcall SelectTemplate(void* item, void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplate(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelector2> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelector2>
    {
        int32_t __stdcall SelectTemplateForItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplate(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>
    {
        int32_t __stdcall SelectTemplateCore(void* item, void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplateCore(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>
    {
        int32_t __stdcall SelectTemplateForItemCore(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplateCore(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickedEventArgs>
    {
        int32_t __stdcall get_OldDate(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewDate(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePicker> : produce_base<D, Windows::UI::Xaml::Controls::IDatePicker>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Date(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Date(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().DayVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MonthVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().YearVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_YearVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MonthFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().YearFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_YearFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinYear(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinYear(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxYear(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxYear(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DateChanged(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePicker2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePicker2>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePicker3> : produce_base<D, Windows::UI::Xaml::Controls::IDatePicker3>
    {
        int32_t __stdcall get_SelectedDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().SelectedDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedDate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDate(*reinterpret_cast<Windows::Foundation::IReference<Windows::Foundation::DateTime> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectedDateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectedDateChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePicker, Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectedDateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DatePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyout>
    {
        int32_t __stdcall get_CalendarIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Date(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Date(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().DayVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MonthVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().YearVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_YearVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinYear(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinYear(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxYear(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxYear(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DatePicked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DatePicked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePickerFlyout, Windows::UI::Xaml::Controls::DatePickedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DatePicked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DatePicked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ShowAtAsync(void* target, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::DateTime>>>(this->shim().ShowAtAsync(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyout2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyout2>
    {
        int32_t __stdcall get_DayFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MonthFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().YearFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_YearFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutItem> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>
    {
        int32_t __stdcall get_PrimaryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PrimaryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SecondaryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>
    {
        int32_t __stdcall get_PrimaryTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDefaultShadowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDefaultShadowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDefaultShadowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDefaultShadowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>
    {
        int32_t __stdcall get_CalendarIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinYearProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxYearProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>
    {
        int32_t __stdcall get_DayFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs>
    {
        int32_t __stdcall get_OldDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinYearProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxYearProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerStatics2>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerStatics3>
    {
        int32_t __stdcall get_SelectedDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>
    {
        int32_t __stdcall get_OldDate(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewDate(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::DateTime>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>
    {
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DropResult(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackageOperation>(this->shim().DropResult());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Data(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDropDownButton> : produce_base<D, Windows::UI::Xaml::Controls::IDropDownButton>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer> : produce_base<D, Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory>
    {
        int32_t __stdcall CreateInstance(void* owner, void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer>(this->shim().CreateInstance(*reinterpret_cast<Windows::UI::Xaml::Controls::DropDownButton const*>(&owner), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDropDownButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IDropDownButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DropDownButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs>
    {
        int32_t __stdcall get_Action(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction>(this->shim().Action());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlipView> : produce_base<D, Windows::UI::Xaml::Controls::IFlipView>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlipView2> : produce_base<D, Windows::UI::Xaml::Controls::IFlipView2>
    {
        int32_t __stdcall get_UseTouchAnimationsForAllNavigation(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UseTouchAnimationsForAllNavigation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UseTouchAnimationsForAllNavigation(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UseTouchAnimationsForAllNavigation(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlipViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFlipViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::FlipView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlipViewItem> : produce_base<D, Windows::UI::Xaml::Controls::IFlipViewItem>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlipViewItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFlipViewItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::FlipViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlipViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IFlipViewStatics2>
    {
        int32_t __stdcall get_UseTouchAnimationsForAllNavigationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UseTouchAnimationsForAllNavigationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IFlyout>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FlyoutPresenterStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().FlyoutPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FlyoutPresenterStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FlyoutPresenterStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Flyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlyoutPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutPresenter>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlyoutPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutPresenter2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDefaultShadowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDefaultShadowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDefaultShadowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlyoutPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::FlyoutPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDefaultShadowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FlyoutPresenterStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutPresenterStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFocusDisengagedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IFocusDisengagedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFocusEngagedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IFocusEngagedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIcon> : produce_base<D, Windows::UI::Xaml::Controls::IFontIcon>
    {
        int32_t __stdcall get_Glyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Glyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIcon2> : produce_base<D, Windows::UI::Xaml::Controls::IFontIcon2>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIcon3> : produce_base<D, Windows::UI::Xaml::Controls::IFontIcon3>
    {
        int32_t __stdcall get_MirroredWhenRightToLeft(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MirroredWhenRightToLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MirroredWhenRightToLeft(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MirroredWhenRightToLeft(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIconFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::FontIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIconSource> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconSource>
    {
        int32_t __stdcall get_Glyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Glyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MirroredWhenRightToLeft(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MirroredWhenRightToLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MirroredWhenRightToLeft(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MirroredWhenRightToLeft(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconSourceFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::FontIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconSourceStatics>
    {
        int32_t __stdcall get_GlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MirroredWhenRightToLeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MirroredWhenRightToLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIconStatics> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconStatics>
    {
        int32_t __stdcall get_GlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIconStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconStatics2>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFontIconStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconStatics3>
    {
        int32_t __stdcall get_MirroredWhenRightToLeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MirroredWhenRightToLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrame> : produce_base<D, Windows::UI::Xaml::Controls::IFrame>
    {
        int32_t __stdcall get_CacheSize(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CacheSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CacheSize(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoBack(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoBack());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoForward(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoForward());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CurrentSourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Interop::TypeName>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().CurrentSourcePageType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Interop::TypeName>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().SourcePageType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourcePageType(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackStackDepth(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().BackStackDepth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Navigated(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Navigated(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigatedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Navigated(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigated(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Navigating(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Navigating(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Navigating(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigating(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_NavigationFailed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationFailed(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationFailed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationFailed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_NavigationStopped(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationStopped(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationStopped(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationStopped(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GoBack() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GoForward() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoForward();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Navigate(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&parameter)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetNavigationState(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetNavigationState());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetNavigationState(void* navigationState) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetNavigationState(*reinterpret_cast<hstring const*>(&navigationState));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrame2> : produce_base<D, Windows::UI::Xaml::Controls::IFrame2>
    {
        int32_t __stdcall get_BackStack(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>>(this->shim().BackStack());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForwardStack(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>>(this->shim().ForwardStack());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, void* infoOverride, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Navigate(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&parameter), *reinterpret_cast<Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const*>(&infoOverride)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrame3> : produce_base<D, Windows::UI::Xaml::Controls::IFrame3>
    {
        int32_t __stdcall GoBack(void* transitionInfoOverride) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const*>(&transitionInfoOverride));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrame4> : produce_base<D, Windows::UI::Xaml::Controls::IFrame4>
    {
        int32_t __stdcall SetNavigationStateWithNavigationControl(void* navigationState, bool suppressNavigate) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetNavigationState(*reinterpret_cast<hstring const*>(&navigationState), suppressNavigate);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrame5> : produce_base<D, Windows::UI::Xaml::Controls::IFrame5>
    {
        int32_t __stdcall get_IsNavigationStackEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsNavigationStackEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsNavigationStackEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsNavigationStackEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall NavigateToType(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, void* navigationOptions, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().NavigateToType(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&parameter), *reinterpret_cast<Windows::UI::Xaml::Navigation::FrameNavigationOptions const*>(&navigationOptions)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrameFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFrameFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Frame>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrameStatics> : produce_base<D, Windows::UI::Xaml::Controls::IFrameStatics>
    {
        int32_t __stdcall get_CacheSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CacheSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoBackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoBackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoForwardProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoForwardProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CurrentSourcePageTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CurrentSourcePageTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourcePageTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourcePageTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackStackDepthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackStackDepthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrameStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IFrameStatics2>
    {
        int32_t __stdcall get_BackStackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackStackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForwardStackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForwardStackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IFrameStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IFrameStatics5>
    {
        int32_t __stdcall get_IsNavigationStackEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsNavigationStackEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGrid> : produce_base<D, Windows::UI::Xaml::Controls::IGrid>
    {
        int32_t __stdcall get_RowDefinitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RowDefinitionCollection>(this->shim().RowDefinitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnDefinitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ColumnDefinitionCollection>(this->shim().ColumnDefinitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGrid2> : produce_base<D, Windows::UI::Xaml::Controls::IGrid2>
    {
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGrid3> : produce_base<D, Windows::UI::Xaml::Controls::IGrid3>
    {
        int32_t __stdcall get_RowSpacing(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().RowSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RowSpacing(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RowSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnSpacing(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ColumnSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ColumnSpacing(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColumnSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGrid4> : produce_base<D, Windows::UI::Xaml::Controls::IGrid4>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGridFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Grid>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridStatics> : produce_base<D, Windows::UI::Xaml::Controls::IGridStatics>
    {
        int32_t __stdcall get_RowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRow(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetRow(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRow(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRow(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetColumn(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetColumn(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetColumn(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumn(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowSpanProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRowSpan(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetRowSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRowSpan(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRowSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnSpanProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetColumnSpan(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetColumnSpan(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IGridStatics2>
    {
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IGridStatics3>
    {
        int32_t __stdcall get_RowSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IGridStatics4>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridView> : produce_base<D, Windows::UI::Xaml::Controls::IGridView>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGridViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::GridView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridViewHeaderItem> : produce_base<D, Windows::UI::Xaml::Controls::IGridViewHeaderItem>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::GridViewHeaderItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridViewItem> : produce_base<D, Windows::UI::Xaml::Controls::IGridViewItem>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGridViewItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGridViewItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::GridViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGroupItem> : produce_base<D, Windows::UI::Xaml::Controls::IGroupItem>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGroupItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGroupItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::GroupItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGroupStyle> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyle>
    {
        int32_t __stdcall get_Panel(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsPanelTemplate>(this->shim().Panel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Panel(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Panel(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsPanelTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().ContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContainerStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContainerStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().HeaderTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HidesIfEmpty(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HidesIfEmpty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HidesIfEmpty(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HidesIfEmpty(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGroupStyle2> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyle2>
    {
        int32_t __stdcall get_HeaderContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().HeaderContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGroupStyleFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyleFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::GroupStyle>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGroupStyleSelector> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyleSelector>
    {
        int32_t __stdcall SelectGroupStyle(void* group, uint32_t level, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::GroupStyle>(this->shim().SelectGroupStyle(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&group), level));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::GroupStyleSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>
    {
        int32_t __stdcall SelectGroupStyleCore(void* group, uint32_t level, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::GroupStyle>(this->shim().SelectGroupStyleCore(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&group), level));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHandwritingPanelClosedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IHandwritingPanelClosedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHandwritingPanelOpenedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IHandwritingPanelOpenedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHandwritingView> : produce_base<D, Windows::UI::Xaml::Controls::IHandwritingView>
    {
        int32_t __stdcall get_PlacementTarget(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PlacementTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlacementTarget(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementTarget(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment>(this->shim().PlacementAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlacementAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AreCandidatesEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreCandidatesEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreCandidatesEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreCandidatesEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall TryClose(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().TryClose());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall TryOpen(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().TryOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHandwritingViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IHandwritingViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHandwritingViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::IHandwritingViewStatics>
    {
        int32_t __stdcall get_PlacementTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AreCandidatesEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreCandidatesEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHub> : produce_base<D, Windows::UI::Xaml::Controls::IHub>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultSectionIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DefaultSectionIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultSectionIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultSectionIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Sections(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().Sections());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SectionsInView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().SectionsInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SectionHeaders(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::Foundation::IInspectable>>(this->shim().SectionHeaders());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SectionHeaderClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SectionHeaderClick(*reinterpret_cast<Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SectionHeaderClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SectionHeaderClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SectionsInViewChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SectionsInViewChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SectionsInViewChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SectionsInViewChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ScrollToSection(void* section) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToSection(*reinterpret_cast<Windows::UI::Xaml::Controls::HubSection const*>(&section));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHubFactory> : produce_base<D, Windows::UI::Xaml::Controls::IHubFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Hub>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHubSection> : produce_base<D, Windows::UI::Xaml::Controls::IHubSection>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHeaderInteractive(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHeaderInteractive());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHeaderInteractive(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHeaderInteractive(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHubSectionFactory> : produce_base<D, Windows::UI::Xaml::Controls::IHubSectionFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HubSection>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs>
    {
        int32_t __stdcall get_Section(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HubSection>(this->shim().Section());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHubSectionStatics> : produce_base<D, Windows::UI::Xaml::Controls::IHubSectionStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHeaderInteractiveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHeaderInteractiveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHubStatics> : produce_base<D, Windows::UI::Xaml::Controls::IHubStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultSectionIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultSectionIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SemanticZoomOwnerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SemanticZoomOwnerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsActiveViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHyperlinkButton> : produce_base<D, Windows::UI::Xaml::Controls::IHyperlinkButton>
    {
        int32_t __stdcall get_NavigateUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().NavigateUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_NavigateUri(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateUri(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHyperlinkButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HyperlinkButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IHyperlinkButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>
    {
        int32_t __stdcall get_NavigateUriProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NavigateUriProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconElement> : produce_base<D, Windows::UI::Xaml::Controls::IIconElement>
    {
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconElementFactory> : produce_base<D, Windows::UI::Xaml::Controls::IIconElementFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconElementStatics> : produce_base<D, Windows::UI::Xaml::Controls::IIconElementStatics>
    {
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconSource> : produce_base<D, Windows::UI::Xaml::Controls::IIconSource>
    {
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconSourceElement> : produce_base<D, Windows::UI::Xaml::Controls::IIconSourceElement>
    {
        int32_t __stdcall get_IconSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IconSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IconSource(*reinterpret_cast<Windows::UI::Xaml::Controls::IconSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconSourceElementFactory> : produce_base<D, Windows::UI::Xaml::Controls::IIconSourceElementFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconSourceElement>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconSourceElementStatics> : produce_base<D, Windows::UI::Xaml::Controls::IIconSourceElementStatics>
    {
        int32_t __stdcall get_IconSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::IIconSourceFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::IIconSourceStatics>
    {
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IImage> : produce_base<D, Windows::UI::Xaml::Controls::IImage>
    {
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NineGrid(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().NineGrid());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_NineGrid(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NineGrid(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::PlayTo::PlayToSource>(this->shim().PlayToSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ImageFailed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ImageFailed(*reinterpret_cast<Windows::UI::Xaml::ExceptionRoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ImageFailed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ImageFailed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ImageOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ImageOpened(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ImageOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ImageOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IImage2> : produce_base<D, Windows::UI::Xaml::Controls::IImage2>
    {
        int32_t __stdcall GetAsCastingSource(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Media::Casting::CastingSource>(this->shim().GetAsCastingSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IImage3> : produce_base<D, Windows::UI::Xaml::Controls::IImage3>
    {
        int32_t __stdcall GetAlphaMask(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Composition::CompositionBrush>(this->shim().GetAlphaMask());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IImageStatics> : produce_base<D, Windows::UI::Xaml::Controls::IImageStatics>
    {
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NineGridProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NineGridProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkCanvas> : produce_base<D, Windows::UI::Xaml::Controls::IInkCanvas>
    {
        int32_t __stdcall get_InkPresenter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenter>(this->shim().InkPresenter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkCanvasFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkCanvasFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkCanvas>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbar> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbar>
    {
        int32_t __stdcall get_InitialControls(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarInitialControls>(this->shim().InitialControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InitialControls(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitialControls(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarInitialControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Children(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObjectCollection>(this->shim().Children());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActiveTool(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarToolButton>(this->shim().ActiveTool());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ActiveTool(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ActiveTool(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarToolButton const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InkDrawingAttributes(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().InkDrawingAttributes());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRulerButtonChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRulerButtonChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsRulerButtonChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerButtonChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TargetInkCanvas(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkCanvas>(this->shim().TargetInkCanvas());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TargetInkCanvas(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TargetInkCanvas(*reinterpret_cast<Windows::UI::Xaml::Controls::InkCanvas const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ActiveToolChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ActiveToolChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ActiveToolChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ActiveToolChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_InkDrawingAttributesChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().InkDrawingAttributesChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_InkDrawingAttributesChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InkDrawingAttributesChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_EraseAllClicked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().EraseAllClicked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_EraseAllClicked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().EraseAllClicked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_IsRulerButtonCheckedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsRulerButtonCheckedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsRulerButtonCheckedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerButtonCheckedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GetToolButton(int32_t tool, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::InkToolbarToolButton>(this->shim().GetToolButton(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarTool const*>(&tool)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetToggleButton(int32_t tool, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::InkToolbarToggleButton>(this->shim().GetToggleButton(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarToggle const*>(&tool)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbar2> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbar2>
    {
        int32_t __stdcall get_IsStencilButtonChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStencilButtonChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsStencilButtonChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStencilButtonChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ButtonFlyoutPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement>(this->shim().ButtonFlyoutPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ButtonFlyoutPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ButtonFlyoutPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsStencilButtonCheckedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsStencilButtonCheckedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsStencilButtonCheckedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStencilButtonCheckedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GetMenuButton(int32_t menu, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::InkToolbarMenuButton>(this->shim().GetMenuButton(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarMenuKind const*>(&menu)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbar3> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbar3>
    {
        int32_t __stdcall get_TargetInkPresenter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenter>(this->shim().TargetInkPresenter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TargetInkPresenter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TargetInkPresenter(*reinterpret_cast<Windows::UI::Input::Inking::InkPresenter const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPen> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPen>
    {
        int32_t __stdcall CreateInkDrawingAttributes(void* brush, double strokeWidth, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().CreateInkDrawingAttributes(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&brush), strokeWidth));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>
    {
        int32_t __stdcall get_CustomPen(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPen>(this->shim().CustomPen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CustomPen(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CustomPen(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarCustomPen const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ConfigurationContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ConfigurationContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ConfigurationContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfigurationContent(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPenButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>
    {
        int32_t __stdcall get_CustomPenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CustomPenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ConfigurationContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ConfigurationContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPen>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>
    {
        int32_t __stdcall CreateInkDrawingAttributesCore(void* brush, double strokeWidth, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().CreateInkDrawingAttributesCore(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&brush), strokeWidth));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>
    {
        int32_t __stdcall get_ConfigurationContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ConfigurationContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ConfigurationContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfigurationContent(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomToolButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics>
    {
        int32_t __stdcall get_ConfigurationContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ConfigurationContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButton>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButton2> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButton2>
    {
        int32_t __stdcall get_IsClearAllVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsClearAllVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsClearAllVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsClearAllVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarEraserButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2>
    {
        int32_t __stdcall get_IsClearAllVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsClearAllVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>
    {
        int32_t __stdcall get_Kind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind>(this->shim().Kind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Kind(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Kind(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Checked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Checked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Checked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Checked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Unchecked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Unchecked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Unchecked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Unchecked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>
    {
        int32_t __stdcall get_KindProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCheckedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarHighlighterButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>
    {
        int32_t __stdcall get_StencilButton(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilButton>(this->shim().StencilButton());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StencilKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilKind>(this->shim().StencilKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarMenuButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarMenuButton>
    {
        int32_t __stdcall get_MenuKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarMenuKind>(this->shim().MenuKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExtensionGlyphShown(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExtensionGlyphShown());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsExtensionGlyphShown(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExtensionGlyphShown(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarMenuButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarMenuButtonFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics>
    {
        int32_t __stdcall get_IsExtensionGlyphShownProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExtensionGlyphShownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenButton>
    {
        int32_t __stdcall get_Palette(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush>>(this->shim().Palette());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Palette(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Palette(*reinterpret_cast<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinStrokeWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinStrokeWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinStrokeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxStrokeWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxStrokeWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxStrokeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBrushIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedBrushIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedBrushIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedBrushIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedStrokeWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().SelectedStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedStrokeWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedStrokeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenButtonFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>
    {
        int32_t __stdcall get_PaletteProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaletteProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinStrokeWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinStrokeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxStrokeWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxStrokeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBrushIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBrushIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedStrokeWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedStrokeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl>
    {
        int32_t __stdcall get_PenButton(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarPenButton>(this->shim().PenButton());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics>
    {
        int32_t __stdcall get_PenButtonProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PenButtonProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPencilButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPencilButton>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarPencilButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButton>
    {
        int32_t __stdcall get_Ruler(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenterRuler>(this->shim().Ruler());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarRulerButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics>
    {
        int32_t __stdcall get_RulerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RulerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStatics>
    {
        int32_t __stdcall get_InitialControlsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialControlsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildrenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildrenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActiveToolProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ActiveToolProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InkDrawingAttributesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InkDrawingAttributesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRulerButtonCheckedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRulerButtonCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TargetInkCanvasProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TargetInkCanvasProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStatics2>
    {
        int32_t __stdcall get_IsStencilButtonCheckedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStencilButtonCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ButtonFlyoutPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ButtonFlyoutPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStatics3>
    {
        int32_t __stdcall get_TargetInkPresenterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TargetInkPresenterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButton>
    {
        int32_t __stdcall get_Ruler(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenterRuler>(this->shim().Ruler());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Protractor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenterProtractor>(this->shim().Protractor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedStencil(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilKind>(this->shim().SelectedStencil());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedStencil(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedStencil(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarStencilKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRulerItemVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRulerItemVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsRulerItemVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerItemVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsProtractorItemVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsProtractorItemVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsProtractorItemVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsProtractorItemVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>
    {
        int32_t __stdcall get_RulerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RulerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProtractorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProtractorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedStencilProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedStencilProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRulerItemVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRulerItemVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsProtractorItemVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsProtractorItemVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarToggleButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarToggleButton>
    {
        int32_t __stdcall get_ToggleKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarToggle>(this->shim().ToggleKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarToggleButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarToggleButtonFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarToolButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarToolButton>
    {
        int32_t __stdcall get_ToolKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarTool>(this->shim().ToolKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExtensionGlyphShown(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExtensionGlyphShown());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsExtensionGlyphShown(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExtensionGlyphShown(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarToolButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarToolButtonFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics>
    {
        int32_t __stdcall get_IsExtensionGlyphShownProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExtensionGlyphShownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IInsertionPanel> : produce_base<D, Windows::UI::Xaml::Controls::IInsertionPanel>
    {
        int32_t __stdcall GetInsertionIndexes(Windows::Foundation::Point position, int32_t* first, int32_t* second) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GetInsertionIndexes(*reinterpret_cast<Windows::Foundation::Point const*>(&position), *first, *second);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IIsTextTrimmedChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IIsTextTrimmedChangedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemClickEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IItemClickEventArgs>
    {
        int32_t __stdcall get_ClickedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ClickedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemContainerGenerator> : produce_base<D, Windows::UI::Xaml::Controls::IItemContainerGenerator>
    {
        int32_t __stdcall add_ItemsChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemsChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemsChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ItemFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall IndexFromContainer(void* container, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().IndexFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromIndex(int32_t index, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromIndex(index));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetItemContainerGeneratorForPanel(void* panel, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().GetItemContainerGeneratorForPanel(*reinterpret_cast<Windows::UI::Xaml::Controls::Panel const*>(&panel)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall StartAt(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t direction, bool allowStartAtRealizedItem) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StartAt(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), *reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorDirection const*>(&direction), allowStartAtRealizedItem);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Stop() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GenerateNext(bool* isNewlyRealized, void** returnValue) noexcept final try
        {
            clear_abi(returnValue);
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GenerateNext(*isNewlyRealized));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PrepareItemContainer(void* container) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareItemContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RemoveAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Remove(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t count) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Remove(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), count);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GeneratorPositionFromIndex(int32_t itemIndex, struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition* result) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition>(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition>(this->shim().GeneratorPositionFromIndex(itemIndex));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall IndexFromGeneratorPosition(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().IndexFromGeneratorPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Recycle(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t count) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Recycle(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), count);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemContainerMapping> : produce_base<D, Windows::UI::Xaml::Controls::IItemContainerMapping>
    {
        int32_t __stdcall ItemFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall IndexFromContainer(void* container, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().IndexFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromIndex(int32_t index, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromIndex(index));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsControl> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControl>
    {
        int32_t __stdcall get_ItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemCollection>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsPanel(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsPanelTemplate>(this->shim().ItemsPanel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsPanel(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsPanel(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsPanelTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMemberPath(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisplayMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMemberPath(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().ItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerGenerator(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().ItemContainerGenerator());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ItemContainerTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::GroupStyle>>(this->shim().GroupStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::GroupStyleSelector>(this->shim().GroupStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGrouping(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGrouping());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsControl2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControl2>
    {
        int32_t __stdcall get_ItemsPanelRoot(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Panel>(this->shim().ItemsPanelRoot());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsControl3> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControl3>
    {
        int32_t __stdcall GroupHeaderContainerFromItemContainer(void* itemContainer, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GroupHeaderContainerFromItemContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&itemContainer)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControlFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsControlOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControlOverrides>
    {
        int32_t __stdcall IsItemItsOwnContainerOverride(void* item, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsItemItsOwnContainerOverride(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetContainerForItemOverride(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GetContainerForItemOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ClearContainerForItemOverride(void* element, void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClearContainerForItemOverride(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PrepareContainerForItemOverride(void* element, void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareContainerForItemOverride(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemsChanged(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemsChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemContainerStyleChanged(void* oldItemContainerStyle, void* newItemContainerStyle) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemContainerStyleChanged(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&oldItemContainerStyle), *reinterpret_cast<Windows::UI::Xaml::Style const*>(&newItemContainerStyle));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemContainerStyleSelectorChanged(void* oldItemContainerStyleSelector, void* newItemContainerStyleSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemContainerStyleSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&oldItemContainerStyleSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&newItemContainerStyleSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemTemplateChanged(void* oldItemTemplate, void* newItemTemplate) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemTemplateChanged(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&oldItemTemplate), *reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&newItemTemplate));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemTemplateSelectorChanged(void* oldItemTemplateSelector, void* newItemTemplateSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemTemplateSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldItemTemplateSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newItemTemplateSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnGroupStyleSelectorChanged(void* oldGroupStyleSelector, void* newGroupStyleSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnGroupStyleSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&oldGroupStyleSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&newGroupStyleSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControlStatics>
    {
        int32_t __stdcall get_ItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMemberPathProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupStyleSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetItemsOwner(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ItemsControl>(this->shim().GetItemsOwner(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ItemsControlFromItemContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ItemsControl>(this->shim().ItemsControlFromItemContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsPanelTemplate> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPanelTemplate>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsPickedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPickedEventArgs>
    {
        int32_t __stdcall get_AddedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().AddedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RemovedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().RemovedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPresenter>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().HeaderTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPresenter2>
    {
        int32_t __stdcall get_Footer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Footer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Footer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Footer(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().FooterTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FooterTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().FooterTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FooterTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsPresenterStatics> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPresenterStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsPresenterStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>
    {
        int32_t __stdcall get_FooterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsStackPanel> : produce_base<D, Windows::UI::Xaml::Controls::IItemsStackPanel>
    {
        int32_t __stdcall get_GroupPadding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().GroupPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupPadding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupPadding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstCacheIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstVisibleIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LastVisibleIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LastCacheIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollingDirection(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PanelScrollingDirection>(this->shim().ScrollingDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupHeaderPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>(this->shim().GroupHeaderPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupHeaderPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsUpdatingScrollMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode>(this->shim().ItemsUpdatingScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsUpdatingScrollMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsUpdatingScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CacheLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CacheLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CacheLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsStackPanel2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsStackPanel2>
    {
        int32_t __stdcall get_AreStickyGroupHeadersEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreStickyGroupHeadersEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreStickyGroupHeadersEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreStickyGroupHeadersEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsStackPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>
    {
        int32_t __stdcall get_GroupPaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupHeaderPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupHeaderPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CacheLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CacheLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsStackPanelStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsStackPanelStatics2>
    {
        int32_t __stdcall get_AreStickyGroupHeadersEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreStickyGroupHeadersEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsWrapGrid> : produce_base<D, Windows::UI::Xaml::Controls::IItemsWrapGrid>
    {
        int32_t __stdcall get_GroupPadding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().GroupPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupPadding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupPadding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstCacheIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstVisibleIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LastVisibleIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LastCacheIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollingDirection(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PanelScrollingDirection>(this->shim().ScrollingDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupHeaderPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>(this->shim().GroupHeaderPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupHeaderPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CacheLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CacheLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CacheLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsWrapGrid2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsWrapGrid2>
    {
        int32_t __stdcall get_AreStickyGroupHeadersEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreStickyGroupHeadersEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreStickyGroupHeadersEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreStickyGroupHeadersEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsWrapGridStatics> : produce_base<D, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>
    {
        int32_t __stdcall get_GroupPaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupHeaderPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupHeaderPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CacheLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CacheLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IItemsWrapGridStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsWrapGridStatics2>
    {
        int32_t __stdcall get_AreStickyGroupHeadersEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreStickyGroupHeadersEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListBox> : produce_base<D, Windows::UI::Xaml::Controls::IListBox>
    {
        int32_t __stdcall get_SelectedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::SelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ScrollIntoView(void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListBox2> : produce_base<D, Windows::UI::Xaml::Controls::IListBox2>
    {
        int32_t __stdcall get_SingleSelectionFollowsFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SingleSelectionFollowsFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SingleSelectionFollowsFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListBoxFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListBoxItem> : produce_base<D, Windows::UI::Xaml::Controls::IListBoxItem>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListBoxItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListBoxItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListBoxItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IListBoxStatics>
    {
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IListBoxStatics2>
    {
        int32_t __stdcall get_SingleSelectionFollowsFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SingleSelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListPickerFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IListPickerFlyout>
    {
        int32_t __stdcall get_ItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMemberPath(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisplayMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMemberPath(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedValue(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedValue(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedValue(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedValuePath(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedValuePath());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedValuePath(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedValuePath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ItemsPicked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemsPicked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListPickerFlyout, Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemsPicked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsPicked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ShowAtAsync(void* target, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>>>(this->shim().ShowAtAsync(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListPickerFlyoutPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IListPickerFlyoutPresenter>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>
    {
        int32_t __stdcall get_ItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMemberPathProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItemProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedValuePathProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedValuePathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListView> : produce_base<D, Windows::UI::Xaml::Controls::IListView>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBase> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase>
    {
        int32_t __stdcall get_SelectedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSwipeEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSwipeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSwipeEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSwipeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanDragItems(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanDragItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanDragItems(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanDragItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanReorderItems(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanReorderItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanReorderItems(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanReorderItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsItemClickEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsItemClickEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsItemClickEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsItemClickEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DataFetchSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DataFetchSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DataFetchSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DataFetchSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IncrementalLoadingThreshold(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().IncrementalLoadingThreshold());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IncrementalLoadingThreshold(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IncrementalLoadingThreshold(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IncrementalLoadingTrigger(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IncrementalLoadingTrigger>(this->shim().IncrementalLoadingTrigger());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IncrementalLoadingTrigger(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IncrementalLoadingTrigger(*reinterpret_cast<Windows::UI::Xaml::Controls::IncrementalLoadingTrigger const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ItemClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemClick(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemClickEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DragItemsStarting(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DragItemsStarting(*reinterpret_cast<Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DragItemsStarting(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsStarting(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ScrollIntoView(void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LoadMoreItemsAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Data::LoadMoreItemsResult>>(this->shim().LoadMoreItemsAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ScrollIntoViewWithAlignment(void* item, int32_t alignment) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollIntoViewAlignment const*>(&alignment));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().HeaderTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBase2> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase2>
    {
        int32_t __stdcall get_ShowsScrollingPlaceholders(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowsScrollingPlaceholders());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowsScrollingPlaceholders(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowsScrollingPlaceholders(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ContainerContentChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContainerContentChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContainerContentChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerContentChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetDesiredContainerUpdateDuration(int64_t duration) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDesiredContainerUpdateDuration(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&duration));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Footer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Footer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Footer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Footer(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().FooterTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FooterTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().FooterTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FooterTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBase3> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase3>
    {
        int32_t __stdcall get_ReorderMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewReorderMode>(this->shim().ReorderMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ReorderMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ReorderMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewReorderMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBase4> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase4>
    {
        int32_t __stdcall get_SelectedRanges(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::UI::Xaml::Data::ItemIndexRange>>(this->shim().SelectedRanges());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMultiSelectCheckBoxEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsMultiSelectCheckBoxEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsMultiSelectCheckBoxEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMultiSelectCheckBoxEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DragItemsCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DragItemsCompleted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DragItemsCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ChoosingItemContainer(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ChoosingItemContainer(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ChoosingItemContainer(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChoosingItemContainer(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ChoosingGroupHeaderContainer(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ChoosingGroupHeaderContainer(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ChoosingGroupHeaderContainer(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChoosingGroupHeaderContainer(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SelectRange(void* itemIndexRange) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectRange(*reinterpret_cast<Windows::UI::Xaml::Data::ItemIndexRange const*>(&itemIndexRange));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall DeselectRange(void* itemIndexRange) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DeselectRange(*reinterpret_cast<Windows::UI::Xaml::Data::ItemIndexRange const*>(&itemIndexRange));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBase5> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase5>
    {
        int32_t __stdcall get_SingleSelectionFollowsFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SingleSelectionFollowsFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SingleSelectionFollowsFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall IsDragSource(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsDragSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBase6> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase6>
    {
        int32_t __stdcall TryStartConnectedAnimationAsync(void* animation, void* item, void* elementName, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<bool>>(this->shim().TryStartConnectedAnimationAsync(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::ConnectedAnimation const*>(&animation), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<hstring const*>(&elementName)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PrepareConnectedAnimation(void* key, void* item, void* elementName, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Media::Animation::ConnectedAnimation>(this->shim().PrepareConnectedAnimation(*reinterpret_cast<hstring const*>(&key), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<hstring const*>(&elementName)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewBase>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseHeaderItem> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseHeaderItem>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseHeaderItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseHeaderItemFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics>
    {
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSwipeEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSwipeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanDragItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanDragItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanReorderItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanReorderItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsItemClickEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsItemClickEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DataFetchSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataFetchSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IncrementalLoadingThresholdProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IncrementalLoadingThresholdProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IncrementalLoadingTriggerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IncrementalLoadingTriggerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SemanticZoomOwnerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SemanticZoomOwnerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsActiveViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics2>
    {
        int32_t __stdcall get_ShowsScrollingPlaceholdersProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowsScrollingPlaceholdersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics3>
    {
        int32_t __stdcall get_ReorderModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ReorderModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics4>
    {
        int32_t __stdcall get_IsMultiSelectCheckBoxEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsMultiSelectCheckBoxEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics5>
    {
        int32_t __stdcall get_SingleSelectionFollowsFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SingleSelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewHeaderItem> : produce_base<D, Windows::UI::Xaml::Controls::IListViewHeaderItem>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewHeaderItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewHeaderItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewItem> : produce_base<D, Windows::UI::Xaml::Controls::IListViewItem>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListViewItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewPersistenceHelper> : produce_base<D, Windows::UI::Xaml::Controls::IListViewPersistenceHelper>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics> : produce_base<D, Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>
    {
        int32_t __stdcall GetRelativeScrollPosition(void* listViewBase, void* itemToKeyHandler, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetRelativeScrollPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewBase const*>(&listViewBase), *reinterpret_cast<Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const*>(&itemToKeyHandler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRelativeScrollPositionAsync(void* listViewBase, void* relativeScrollPosition, void* keyToItemHandler, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncAction>(this->shim().SetRelativeScrollPositionAsync(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewBase const*>(&listViewBase), *reinterpret_cast<hstring const*>(&relativeScrollPosition), *reinterpret_cast<Windows::UI::Xaml::Controls::ListViewKeyToItemHandler const*>(&keyToItemHandler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaElement> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElement>
    {
        int32_t __stdcall get_PosterSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PosterSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PosterSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PosterSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMuted(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsMuted());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsMuted(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMuted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAudioOnly(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAudioOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoPlay(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoPlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AutoPlay(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoPlay(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Volume(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Volume());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Volume(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Volume(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Balance(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Balance());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Balance(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Balance(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalVideoHeight(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NaturalVideoHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalVideoWidth(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NaturalVideoWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalDuration(struct struct_Windows_UI_Xaml_Duration* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Duration>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Duration>(this->shim().NaturalDuration());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Position(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::TimeSpan>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Position());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Position(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Position(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DownloadProgress(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DownloadProgress());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BufferingProgress(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BufferingProgress());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DownloadProgressOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DownloadProgressOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CurrentState(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::MediaElementState>(this->shim().CurrentState());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Markers(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::TimelineMarkerCollection>(this->shim().Markers());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanSeek(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanSeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanPause(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanPause());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioStreamCount(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AudioStreamCount());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioStreamIndex(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<int32_t>>(this->shim().AudioStreamIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AudioStreamIndex(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioStreamIndex(*reinterpret_cast<Windows::Foundation::IReference<int32_t> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaybackRate(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().PlaybackRate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaybackRate(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaybackRate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsLooping(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsLooping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsLooping(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsLooping(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::PlayTo::PlayToSource>(this->shim().PlayToSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultPlaybackRate(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DefaultPlaybackRate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultPlaybackRate(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultPlaybackRate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AspectRatioWidth(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AspectRatioWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AspectRatioHeight(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AspectRatioHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RealTimePlayback(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().RealTimePlayback());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RealTimePlayback(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RealTimePlayback(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioCategory(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::AudioCategory>(this->shim().AudioCategory());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AudioCategory(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioCategory(*reinterpret_cast<Windows::UI::Xaml::Media::AudioCategory const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioDeviceType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::AudioDeviceType>(this->shim().AudioDeviceType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AudioDeviceType(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioDeviceType(*reinterpret_cast<Windows::UI::Xaml::Media::AudioDeviceType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProtectionManager(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Protection::MediaProtectionManager>(this->shim().ProtectionManager());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ProtectionManager(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ProtectionManager(*reinterpret_cast<Windows::Media::Protection::MediaProtectionManager const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stereo3DVideoPackingMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stereo3DVideoPackingMode>(this->shim().Stereo3DVideoPackingMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stereo3DVideoPackingMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stereo3DVideoPackingMode(*reinterpret_cast<Windows::UI::Xaml::Media::Stereo3DVideoPackingMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stereo3DVideoRenderMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stereo3DVideoRenderMode>(this->shim().Stereo3DVideoRenderMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stereo3DVideoRenderMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stereo3DVideoRenderMode(*reinterpret_cast<Windows::UI::Xaml::Media::Stereo3DVideoRenderMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStereo3DVideo(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStereo3DVideo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_MediaOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().MediaOpened(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_MediaOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_MediaEnded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().MediaEnded(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_MediaEnded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaEnded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_MediaFailed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().MediaFailed(*reinterpret_cast<Windows::UI::Xaml::ExceptionRoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_MediaFailed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaFailed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DownloadProgressChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DownloadProgressChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DownloadProgressChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DownloadProgressChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_BufferingProgressChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().BufferingProgressChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_BufferingProgressChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BufferingProgressChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_CurrentStateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CurrentStateChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CurrentStateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CurrentStateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_MarkerReached(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().MarkerReached(*reinterpret_cast<Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_MarkerReached(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MarkerReached(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_RateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().RateChanged(*reinterpret_cast<Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_RateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_VolumeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().VolumeChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_VolumeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VolumeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SeekCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SeekCompleted(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SeekCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SeekCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Stop() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Play() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Play();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Pause() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pause();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CanPlayType(void* type, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Media::MediaCanPlayResponse>(this->shim().CanPlayType(*reinterpret_cast<hstring const*>(&type)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetSource(void* stream, void* mimeType) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSource(*reinterpret_cast<Windows::Storage::Streams::IRandomAccessStream const*>(&stream), *reinterpret_cast<hstring const*>(&mimeType));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAudioStreamLanguage(void* index, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetAudioStreamLanguage(*reinterpret_cast<Windows::Foundation::IReference<int32_t> const*>(&index)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall AddAudioEffect(void* effectID, bool effectOptional, void* effectConfiguration) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddAudioEffect(*reinterpret_cast<hstring const*>(&effectID), effectOptional, *reinterpret_cast<Windows::Foundation::Collections::IPropertySet const*>(&effectConfiguration));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall AddVideoEffect(void* effectID, bool effectOptional, void* effectConfiguration) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddVideoEffect(*reinterpret_cast<hstring const*>(&effectID), effectOptional, *reinterpret_cast<Windows::Foundation::Collections::IPropertySet const*>(&effectConfiguration));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RemoveAllEffects() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveAllEffects();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActualStereo3DVideoPackingMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stereo3DVideoPackingMode>(this->shim().ActualStereo3DVideoPackingMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaElement2> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElement2>
    {
        int32_t __stdcall get_AreTransportControlsEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreTransportControlsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreTransportControlsEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreTransportControlsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindow(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindow(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetMediaStreamSource(void* source) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetMediaStreamSource(*reinterpret_cast<Windows::Media::Core::IMediaSource const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToPreferredSourceUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().PlayToPreferredSourceUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlayToPreferredSourceUri(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlayToPreferredSourceUri(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaElement3> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElement3>
    {
        int32_t __stdcall get_TransportControls(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().TransportControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TransportControls(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TransportControls(*reinterpret_cast<Windows::UI::Xaml::Controls::MediaTransportControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_PartialMediaFailureDetected(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PartialMediaFailureDetected(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaElement, Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PartialMediaFailureDetected(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PartialMediaFailureDetected(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetPlaybackSource(void* source) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlaybackSource(*reinterpret_cast<Windows::Media::Playback::IMediaPlaybackSource const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAsCastingSource(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Media::Casting::CastingSource>(this->shim().GetAsCastingSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaElementStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElementStatics>
    {
        int32_t __stdcall get_PosterSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PosterSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMutedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsMutedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAudioOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAudioOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoPlayProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoPlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VolumeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VolumeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BalanceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BalanceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalVideoHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalVideoHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalVideoWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalVideoWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalDurationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalDurationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DownloadProgressProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DownloadProgressProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BufferingProgressProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BufferingProgressProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DownloadProgressOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DownloadProgressOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CurrentStateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CurrentStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanSeekProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanSeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanPauseProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanPauseProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioStreamCountProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioStreamCountProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioStreamIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioStreamIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaybackRateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaybackRateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsLoopingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsLoopingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultPlaybackRateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultPlaybackRateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AspectRatioWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AspectRatioWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AspectRatioHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AspectRatioHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RealTimePlaybackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RealTimePlaybackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioCategoryProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioCategoryProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioDeviceTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioDeviceTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProtectionManagerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProtectionManagerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stereo3DVideoPackingModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Stereo3DVideoPackingModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stereo3DVideoRenderModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Stereo3DVideoRenderModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStereo3DVideoProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStereo3DVideoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActualStereo3DVideoPackingModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ActualStereo3DVideoPackingModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaElementStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElementStatics2>
    {
        int32_t __stdcall get_AreTransportControlsEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreTransportControlsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToPreferredSourceUriProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToPreferredSourceUriProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerElement> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerElement>
    {
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Playback::IMediaPlaybackSource>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::Media::Playback::IMediaPlaybackSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TransportControls(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().TransportControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TransportControls(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TransportControls(*reinterpret_cast<Windows::UI::Xaml::Controls::MediaTransportControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AreTransportControlsEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreTransportControlsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreTransportControlsEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreTransportControlsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PosterSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PosterSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PosterSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PosterSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoPlay(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoPlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AutoPlay(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoPlay(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindow(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindow(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MediaPlayer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Playback::MediaPlayer>(this->shim().MediaPlayer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetMediaPlayer(void* mediaPlayer) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetMediaPlayer(*reinterpret_cast<Windows::Media::Playback::MediaPlayer const*>(&mediaPlayer));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerElementFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MediaPlayerElement>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>
    {
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AreTransportControlsEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreTransportControlsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PosterSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PosterSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoPlayProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoPlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MediaPlayerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MediaPlayerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenter>
    {
        int32_t __stdcall get_MediaPlayer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Playback::MediaPlayer>(this->shim().MediaPlayer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MediaPlayer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaPlayer(*reinterpret_cast<Windows::Media::Playback::MediaPlayer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindow(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindow(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MediaPlayerPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>
    {
        int32_t __stdcall get_MediaPlayerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MediaPlayerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControls> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControls>
    {
        int32_t __stdcall get_IsFullWindowButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindowButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindowButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindowButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastForwardButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastForwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFastForwardButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastForwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastForwardEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastForwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFastForwardEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastForwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastRewindButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastRewindButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFastRewindButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastRewindButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastRewindEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastRewindEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFastRewindEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastRewindEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStopButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStopButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsStopButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStopButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStopEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStopEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsStopEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStopEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVolumeButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVolumeButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVolumeButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVolumeButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVolumeEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVolumeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVolumeEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVolumeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPlaybackRateButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPlaybackRateButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPlaybackRateButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPlaybackRateButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPlaybackRateEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPlaybackRateEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPlaybackRateEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPlaybackRateEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSeekBarVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSeekBarVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSeekBarVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSeekBarVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSeekEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSeekEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSeekEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSeekEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompact(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompact());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCompact(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompact(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControls2> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControls2>
    {
        int32_t __stdcall get_IsSkipForwardButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipForwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSkipForwardButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipForwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipForwardEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipForwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSkipForwardEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipForwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipBackwardButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipBackwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSkipBackwardButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipBackwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipBackwardEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipBackwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSkipBackwardEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipBackwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsNextTrackButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsNextTrackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsNextTrackButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsNextTrackButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPreviousTrackButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPreviousTrackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPreviousTrackButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPreviousTrackButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FastPlayFallbackBehaviour(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FastPlayFallbackBehaviour>(this->shim().FastPlayFallbackBehaviour());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FastPlayFallbackBehaviour(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FastPlayFallbackBehaviour(*reinterpret_cast<Windows::UI::Xaml::Media::FastPlayFallbackBehaviour const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ThumbnailRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ThumbnailRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaTransportControls, Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ThumbnailRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ThumbnailRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControls3> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControls3>
    {
        int32_t __stdcall get_ShowAndHideAutomatically(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAndHideAutomatically());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowAndHideAutomatically(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAndHideAutomatically(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRepeatEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRepeatEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsRepeatEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRepeatEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRepeatButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRepeatButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsRepeatButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRepeatButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Show() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Show();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Hide() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControls4> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControls4>
    {
        int32_t __stdcall get_IsCompactOverlayButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompactOverlayButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCompactOverlayButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompactOverlayButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactOverlayEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompactOverlayEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCompactOverlayEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompactOverlayEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsHelper> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsHelper>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>
    {
        int32_t __stdcall get_DropoutOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DropoutOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetDropoutOrder(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IReference<int32_t>>(this->shim().GetDropoutOrder(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetDropoutOrder(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDropoutOrder(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IReference<int32_t> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>
    {
        int32_t __stdcall get_IsFullWindowButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastForwardButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastForwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastForwardEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastForwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastRewindButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastRewindButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastRewindEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastRewindEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStopButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStopButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStopEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStopEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVolumeButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVolumeButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVolumeEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVolumeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPlaybackRateButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPlaybackRateButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPlaybackRateEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPlaybackRateEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSeekBarVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSeekBarVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSeekEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSeekEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>
    {
        int32_t __stdcall get_IsSkipForwardButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipForwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipForwardEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipForwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipBackwardButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipBackwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipBackwardEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipBackwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsNextTrackButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsNextTrackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPreviousTrackButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPreviousTrackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FastPlayFallbackBehaviourProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FastPlayFallbackBehaviourProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>
    {
        int32_t __stdcall get_ShowAndHideAutomaticallyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAndHideAutomaticallyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRepeatEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRepeatEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRepeatButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRepeatButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>
    {
        int32_t __stdcall get_IsCompactOverlayButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactOverlayButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactOverlayEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactOverlayEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuBar> : produce_base<D, Windows::UI::Xaml::Controls::IMenuBar>
    {
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuBarItem>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuBarFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuBarFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MenuBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuBarItem> : produce_base<D, Windows::UI::Xaml::Controls::IMenuBarItem>
    {
        int32_t __stdcall get_Title(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Title(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuBarItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuBarItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MenuBarItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuBarItemFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IMenuBarItemFlyout>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MenuBarItemFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuBarItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMenuBarItemStatics>
    {
        int32_t __stdcall get_TitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuBarStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMenuBarStatics>
    {
        int32_t __stdcall get_ItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyout>
    {
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuFlyoutPresenterStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().MenuFlyoutPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuFlyoutPresenterStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuFlyoutPresenterStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyout2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyout2>
    {
        int32_t __stdcall ShowAt(void* targetElement, Windows::Foundation::Point point) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAt(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&targetElement), *reinterpret_cast<Windows::Foundation::Point const*>(&point));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MenuFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem>
    {
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Command(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Command(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Command(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Click(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Click(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Click(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Click(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem2>
    {
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem3> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem3>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverride(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_KeyboardAcceleratorTextOverride(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemBase> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemBase>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemBaseFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemBaseFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>
    {
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>
    {
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3>
    {
        int32_t __stdcall get_IsDefaultShadowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDefaultShadowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDefaultShadowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDefaultShadowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3>
    {
        int32_t __stdcall get_IsDefaultShadowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDefaultShadowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSeparator> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSeparator>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutStatics>
    {
        int32_t __stdcall get_MenuFlyoutPresenterStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuFlyoutPresenterStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItem> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>
    {
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>
    {
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>
    {
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2>
    {
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigate> : produce_base<D, Windows::UI::Xaml::Controls::INavigate>
    {
        int32_t __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Navigate(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationView> : produce_base<D, Windows::UI::Xaml::Controls::INavigationView>
    {
        int32_t __stdcall get_IsPaneOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPaneOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactModeThresholdWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactModeThresholdWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CompactModeThresholdWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactModeThresholdWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExpandedModeThresholdWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExpandedModeThresholdWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ExpandedModeThresholdWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ExpandedModeThresholdWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneFooter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PaneFooter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneFooter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneFooter(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSettingsVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSettingsVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSettingsVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSettingsVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneToggleButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneToggleButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPaneToggleButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneToggleButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlwaysShowHeader(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AlwaysShowHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AlwaysShowHeader(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AlwaysShowHeader(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CompactPaneLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpenPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().OpenPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpenPaneLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpenPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneToggleButtonStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().PaneToggleButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneToggleButtonStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneToggleButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().MenuItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().MenuItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SettingsItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SettingsItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoSuggestBox(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AutoSuggestBox>(this->shim().AutoSuggestBox());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AutoSuggestBox(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoSuggestBox(*reinterpret_cast<Windows::UI::Xaml::Controls::AutoSuggestBox const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().MenuItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().MenuItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().MenuItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemContainerStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().MenuItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemContainerStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MenuItemFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().MenuItemFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromMenuItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromMenuItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ItemInvoked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemInvoked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemInvoked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInvoked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DisplayModeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DisplayModeChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DisplayModeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayModeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationView2> : produce_base<D, Windows::UI::Xaml::Controls::INavigationView2>
    {
        int32_t __stdcall get_IsBackButtonVisible(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible>(this->shim().IsBackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsBackButtonVisible(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBackButtonVisible(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsBackEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsBackEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsBackEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBackEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneTitle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PaneTitle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneTitle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneTitle(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_BackRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().BackRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_BackRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneClosed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneClosed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneClosed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneClosing(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneClosing(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneClosing(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosing(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneOpened(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneOpening(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationView3> : produce_base<D, Windows::UI::Xaml::Controls::INavigationView3>
    {
        int32_t __stdcall get_PaneDisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode>(this->shim().PaneDisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneDisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneDisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PaneHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneCustomContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PaneCustomContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneCustomContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneCustomContent(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentOverlay(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ContentOverlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentOverlay(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentOverlay(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPaneVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFollowsFocus(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus>(this->shim().SelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFollowsFocus(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFollowsFocus(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShoulderNavigationEnabled(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled>(this->shim().ShoulderNavigationEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShoulderNavigationEnabled(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShoulderNavigationEnabled(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowLabelMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode>(this->shim().OverflowLabelMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OverflowLabelMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowLabelMode(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewBackRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewBackRequestedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs>
    {
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItem> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItem>
    {
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItem2> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItem2>
    {
        int32_t __stdcall get_SelectsOnInvoked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SelectsOnInvoked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectsOnInvoked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectsOnInvoked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemBase> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemBase>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemBaseFactory> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemBaseFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemHeader> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemHeader>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemHeader>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>
    {
        int32_t __stdcall get_InvokedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().InvokedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSettingsInvoked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSettingsInvoked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2>
    {
        int32_t __stdcall get_InvokedItemContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemBase>(this->shim().InvokedItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RecommendedNavigationTransitionInfo(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo>(this->shim().RecommendedNavigationTransitionInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemSeparator> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemSeparator>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemStatics>
    {
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemStatics2> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemStatics2>
    {
        int32_t __stdcall get_SelectsOnInvokedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectsOnInvokedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewList> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewList>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewListFactory> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewListFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewList>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>
    {
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSettingsSelected(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSettingsSelected());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2>
    {
        int32_t __stdcall get_SelectedItemContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemBase>(this->shim().SelectedItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RecommendedNavigationTransitionInfo(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo>(this->shim().RecommendedNavigationTransitionInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewStatics>
    {
        int32_t __stdcall get_IsPaneOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactModeThresholdWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactModeThresholdWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExpandedModeThresholdWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedModeThresholdWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneFooterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneFooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSettingsVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSettingsVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneToggleButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneToggleButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlwaysShowHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlwaysShowHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpenPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpenPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneToggleButtonStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneToggleButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItemProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SettingsItemProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SettingsItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoSuggestBoxProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoSuggestBoxProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemContainerStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemContainerStyleSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemContainerStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewStatics2>
    {
        int32_t __stdcall get_IsBackButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsBackEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBackEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneTitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneTitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewStatics3> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewStatics3>
    {
        int32_t __stdcall get_PaneDisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneDisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneCustomContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneCustomContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentOverlayProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentOverlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFollowsFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettingsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShoulderNavigationEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShoulderNavigationEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowLabelModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowLabelModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewTemplateSettings> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>
    {
        int32_t __stdcall get_TopPadding(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().TopPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowButtonVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().OverflowButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneToggleButtonVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().PaneToggleButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackButtonVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().BackButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopPaneVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().TopPaneVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftPaneVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().LeftPaneVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SingleSelectionFollowsFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewTemplateSettings>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>
    {
        int32_t __stdcall get_TopPaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowButtonVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneToggleButtonVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneToggleButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackButtonVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopPaneVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopPaneVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftPaneVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftPaneVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SingleSelectionFollowsFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SingleSelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INotifyEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INotifyEventArgs>
    {
        int32_t __stdcall get_Value(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Value());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::INotifyEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::INotifyEventArgs2>
    {
        int32_t __stdcall get_CallingUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().CallingUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPage> : produce_base<D, Windows::UI::Xaml::Controls::IPage>
    {
        int32_t __stdcall get_Frame(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Frame>(this->shim().Frame());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NavigationCacheMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Navigation::NavigationCacheMode>(this->shim().NavigationCacheMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_NavigationCacheMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationCacheMode(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationCacheMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopAppBar(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().TopAppBar());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TopAppBar(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopAppBar(*reinterpret_cast<Windows::UI::Xaml::Controls::AppBar const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BottomAppBar(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().BottomAppBar());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BottomAppBar(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BottomAppBar(*reinterpret_cast<Windows::UI::Xaml::Controls::AppBar const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPageFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPageFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Page>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPageOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IPageOverrides>
    {
        int32_t __stdcall OnNavigatedFrom(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatedFrom(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnNavigatedTo(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatedTo(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnNavigatingFrom(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatingFrom(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPageStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPageStatics>
    {
        int32_t __stdcall get_FrameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FrameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopAppBarProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopAppBarProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BottomAppBarProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BottomAppBarProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPanel> : produce_base<D, Windows::UI::Xaml::Controls::IPanel>
    {
        int32_t __stdcall get_Children(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::UIElementCollection>(this->shim().Children());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsItemsHost(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsItemsHost());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildrenTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ChildrenTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ChildrenTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChildrenTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPanel2> : produce_base<D, Windows::UI::Xaml::Controls::IPanel2>
    {
        int32_t __stdcall get_BackgroundTransition(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundTransition(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundTransition(*reinterpret_cast<Windows::UI::Xaml::BrushTransition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPanelFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Panel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPanelStatics>
    {
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsItemsHostProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsItemsHostProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildrenTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildrenTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IParallaxView> : produce_base<D, Windows::UI::Xaml::Controls::IParallaxView>
    {
        int32_t __stdcall get_Child(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Child(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalShift(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalShift());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalShift(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalShift(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceEndOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalSourceEndOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSourceEndOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceEndOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceOffsetKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind>(this->shim().HorizontalSourceOffsetKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSourceOffsetKind(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceOffsetKind(*reinterpret_cast<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceStartOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalSourceStartOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSourceStartOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceStartOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalShiftClamped(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalShiftClamped());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHorizontalShiftClamped(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalShiftClamped(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalShiftClamped(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalShiftClamped());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVerticalShiftClamped(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalShiftClamped(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHorizontalShiftRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxHorizontalShiftRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxHorizontalShiftRatio(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHorizontalShiftRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxVerticalShiftRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxVerticalShiftRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxVerticalShiftRatio(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxVerticalShiftRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalShift(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalShift());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalShift(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalShift(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceEndOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalSourceEndOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSourceEndOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceEndOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceOffsetKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind>(this->shim().VerticalSourceOffsetKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSourceOffsetKind(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceOffsetKind(*reinterpret_cast<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceStartOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalSourceStartOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSourceStartOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceStartOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RefreshAutomaticHorizontalOffsets() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshAutomaticHorizontalOffsets();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RefreshAutomaticVerticalOffsets() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshAutomaticVerticalOffsets();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IParallaxViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IParallaxViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ParallaxView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IParallaxViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::IParallaxViewStatics>
    {
        int32_t __stdcall get_ChildProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceEndOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceEndOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceOffsetKindProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceOffsetKindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceStartOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceStartOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHorizontalShiftRatioProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHorizontalShiftRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalShiftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalShiftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalShiftClampedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalShiftClampedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalShiftClampedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalShiftClampedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceEndOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceEndOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceOffsetKindProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceOffsetKindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceStartOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceStartOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxVerticalShiftRatioProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxVerticalShiftRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalShiftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalShiftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox>
    {
        int32_t __stdcall get_Password(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Password());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Password(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Password(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PasswordChar(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PasswordChar());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PasswordChar(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChar(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPasswordRevealButtonEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPasswordRevealButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPasswordRevealButtonEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPasswordRevealButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLength(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_PasswordChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PasswordChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PasswordChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox2> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Paste(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Paste(*reinterpret_cast<Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Paste(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox3> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox3>
    {
        int32_t __stdcall get_PasswordRevealMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PasswordRevealMode>(this->shim().PasswordRevealMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PasswordRevealMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordRevealMode(*reinterpret_cast<Windows::UI::Xaml::Controls::PasswordRevealMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScope(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InputScope(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<Windows::UI::Xaml::Input::InputScope const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox4> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox4>
    {
        int32_t __stdcall add_PasswordChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PasswordChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PasswordBox, Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PasswordChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox5> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox5>
    {
        int32_t __stdcall get_CanPasteClipboardContent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanPasteClipboardContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Description(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PasteFromClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasteFromClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs>
    {
        int32_t __stdcall get_IsContentChanging(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics>
    {
        int32_t __stdcall get_PasswordProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PasswordCharProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordCharProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPasswordRevealButtonEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPasswordRevealButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>
    {
        int32_t __stdcall get_PasswordRevealModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordRevealModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScopeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics5>
    {
        int32_t __stdcall get_CanPasteClipboardContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanPasteClipboardContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPathIcon> : produce_base<D, Windows::UI::Xaml::Controls::IPathIcon>
    {
        int32_t __stdcall get_Data(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Geometry>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Data(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Data(*reinterpret_cast<Windows::UI::Xaml::Media::Geometry const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPathIconFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PathIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPathIconSource> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconSource>
    {
        int32_t __stdcall get_Data(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Geometry>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Data(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Data(*reinterpret_cast<Windows::UI::Xaml::Media::Geometry const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPathIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconSourceFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PathIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPathIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconSourceStatics>
    {
        int32_t __stdcall get_DataProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPathIconStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconStatics>
    {
        int32_t __stdcall get_DataProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPersonPicture> : produce_base<D, Windows::UI::Xaml::Controls::IPersonPicture>
    {
        int32_t __stdcall get_BadgeNumber(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().BadgeNumber());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BadgeNumber(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeNumber(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().BadgeGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BadgeGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeImageSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().BadgeImageSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BadgeImageSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeImageSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().BadgeText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BadgeText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroup(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroup());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsGroup(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroup(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Contact(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Contacts::Contact>(this->shim().Contact());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Contact(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Contact(*reinterpret_cast<Windows::ApplicationModel::Contacts::Contact const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayName(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisplayName());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayName(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayName(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Initials(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Initials());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Initials(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Initials(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreferSmallImage(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreferSmallImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreferSmallImage(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreferSmallImage(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProfilePicture(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().ProfilePicture());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ProfilePicture(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ProfilePicture(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPersonPictureFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPersonPictureFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PersonPicture>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPersonPictureStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPersonPictureStatics>
    {
        int32_t __stdcall get_BadgeNumberProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeNumberProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeImageSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeImageSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InitialsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreferSmallImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreferSmallImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProfilePictureProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProfilePictureProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPickerConfirmedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IPickerConfirmedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPickerFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IPickerFlyout>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ConfirmationButtonsVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ConfirmationButtonsVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ConfirmationButtonsVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfirmationButtonsVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Confirmed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Confirmed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PickerFlyout, Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Confirmed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Confirmed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ShowAtAsync(void* target, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<bool>>(this->shim().ShowAtAsync(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPickerFlyoutPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IPickerFlyoutPresenter>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPickerFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPickerFlyoutStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ConfirmationButtonsVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ConfirmationButtonsVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivot> : produce_base<D, Windows::UI::Xaml::Controls::IPivot>
    {
        int32_t __stdcall get_Title(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Title(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TitleTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().TitleTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TitleTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TitleTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsLocked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsLocked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsLocked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsLocked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::SelectionChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PivotItemLoading(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PivotItemLoading(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PivotItemLoading(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemLoading(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PivotItemLoaded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PivotItemLoaded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PivotItemLoaded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PivotItemUnloading(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PivotItemUnloading(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PivotItemUnloading(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemUnloading(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PivotItemUnloaded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PivotItemUnloaded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PivotItemUnloaded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemUnloaded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivot2> : produce_base<D, Windows::UI::Xaml::Controls::IPivot2>
    {
        int32_t __stdcall get_LeftHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().LeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LeftHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeader(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftHeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().LeftHeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LeftHeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().RightHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RightHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightHeader(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightHeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().RightHeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RightHeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightHeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivot3> : produce_base<D, Windows::UI::Xaml::Controls::IPivot3>
    {
        int32_t __stdcall get_HeaderFocusVisualPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement>(this->shim().HeaderFocusVisualPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderFocusVisualPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderFocusVisualPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHeaderItemsCarouselEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHeaderItemsCarouselEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHeaderItemsCarouselEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHeaderItemsCarouselEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivotFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPivotFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Pivot>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivotItem> : produce_base<D, Windows::UI::Xaml::Controls::IPivotItem>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivotItemEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IPivotItemEventArgs>
    {
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PivotItem>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Item(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Item(*reinterpret_cast<Windows::UI::Xaml::Controls::PivotItem const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivotItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPivotItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PivotItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivotItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPivotItemStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivotStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPivotStatics>
    {
        int32_t __stdcall get_TitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TitleTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItemProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsLockedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsLockedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SlideInAnimationGroupProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SlideInAnimationGroupProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetSlideInAnimationGroup(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup>(this->shim().GetSlideInAnimationGroup(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetSlideInAnimationGroup(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSlideInAnimationGroup(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivotStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IPivotStatics2>
    {
        int32_t __stdcall get_LeftHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftHeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightHeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightHeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IPivotStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IPivotStatics3>
    {
        int32_t __stdcall get_HeaderFocusVisualPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderFocusVisualPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHeaderItemsCarouselEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHeaderItemsCarouselEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IProgressBar> : produce_base<D, Windows::UI::Xaml::Controls::IProgressBar>
    {
        int32_t __stdcall get_IsIndeterminate(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIndeterminate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsIndeterminate(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsIndeterminate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowError(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowError());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowError(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowError(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowPaused(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowPaused());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowPaused(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowPaused(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IProgressBarFactory> : produce_base<D, Windows::UI::Xaml::Controls::IProgressBarFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ProgressBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IProgressBarStatics> : produce_base<D, Windows::UI::Xaml::Controls::IProgressBarStatics>
    {
        int32_t __stdcall get_IsIndeterminateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsIndeterminateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowErrorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowErrorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowPausedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowPausedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IProgressRing> : produce_base<D, Windows::UI::Xaml::Controls::IProgressRing>
    {
        int32_t __stdcall get_IsActive(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsActive());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsActive(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsActive(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IProgressRingStatics> : produce_base<D, Windows::UI::Xaml::Controls::IProgressRingStatics>
    {
        int32_t __stdcall get_IsActiveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRadioButton> : produce_base<D, Windows::UI::Xaml::Controls::IRadioButton>
    {
        int32_t __stdcall get_GroupName(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().GroupName());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupName(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupName(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRadioButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRadioButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RadioButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRadioButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRadioButtonStatics>
    {
        int32_t __stdcall get_GroupNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingControl> : produce_base<D, Windows::UI::Xaml::Controls::IRatingControl>
    {
        int32_t __stdcall get_Caption(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Caption());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Caption(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Caption(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InitialSetValue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().InitialSetValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InitialSetValue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitialSetValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsClearEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsClearEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsClearEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsClearEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsReadOnly(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsReadOnly(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxRating(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxRating());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxRating(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxRating(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderValue(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().PlaceholderValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderValue(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemInfo(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemInfo>(this->shim().ItemInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemInfo(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInfo(*reinterpret_cast<Windows::UI::Xaml::Controls::RatingItemInfo const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Value(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Value());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Value(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Value(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ValueChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ValueChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RatingControl, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ValueChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ValueChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRatingControlFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RatingControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRatingControlStatics>
    {
        int32_t __stdcall get_CaptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CaptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InitialSetValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialSetValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsClearEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsClearEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsReadOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxRatingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxRatingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemInfoProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemInfoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingItemFontInfo> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemFontInfo>
    {
        int32_t __stdcall get_DisabledGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisabledGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisabledGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Glyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Glyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PointerOverGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PointerOverGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverPlaceholderGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PointerOverPlaceholderGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PointerOverPlaceholderGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverPlaceholderGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UnsetGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().UnsetGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UnsetGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsetGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemFontInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>
    {
        int32_t __stdcall get_DisabledGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverPlaceholderGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverPlaceholderGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UnsetGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UnsetGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingItemImageInfo> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemImageInfo>
    {
        int32_t __stdcall get_DisabledImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().DisabledImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisabledImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Image(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().Image());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Image(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Image(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PlaceholderImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PointerOverImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PointerOverImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverPlaceholderImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PointerOverPlaceholderImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PointerOverPlaceholderImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverPlaceholderImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UnsetImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().UnsetImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UnsetImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsetImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemImageInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>
    {
        int32_t __stdcall get_DisabledImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverPlaceholderImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverPlaceholderImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UnsetImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UnsetImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingItemInfo> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemInfo>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRatingItemInfoFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemInfoFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshContainer> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshContainer>
    {
        int32_t __stdcall get_Visualizer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizer>(this->shim().Visualizer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Visualizer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Visualizer(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshVisualizer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PullDirection(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshPullDirection>(this->shim().PullDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PullDirection(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PullDirection(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshPullDirection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_RefreshRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().RefreshRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshContainer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_RefreshRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall RequestRefresh() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequestRefresh();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshContainerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshContainerFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshContainer>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshContainerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshContainerStatics>
    {
        int32_t __stdcall get_VisualizerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VisualizerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PullDirectionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PullDirectionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs>
    {
        int32_t __stdcall get_InteractionRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().InteractionRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs>
    {
        int32_t __stdcall GetDeferral(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::Deferral>(this->shim().GetDeferral());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>
    {
        int32_t __stdcall get_OldState(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().OldState());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewState(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().NewState());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshVisualizer> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshVisualizer>
    {
        int32_t __stdcall RequestRefresh() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequestRefresh();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerOrientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshVisualizerOrientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_State(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().State());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_RefreshRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().RefreshRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_RefreshRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_RefreshStateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().RefreshStateChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_RefreshStateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshStateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshVisualizerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizer>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>
    {
        int32_t __stdcall get_InfoProviderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InfoProviderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRelativePanel> : produce_base<D, Windows::UI::Xaml::Controls::IRelativePanel>
    {
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRelativePanel2> : produce_base<D, Windows::UI::Xaml::Controls::IRelativePanel2>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRelativePanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRelativePanelFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RelativePanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRelativePanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRelativePanelStatics>
    {
        int32_t __stdcall get_LeftOfProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftOfProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLeftOf(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetLeftOf(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLeftOf(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLeftOf(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AboveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AboveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAbove(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAbove(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAbove(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAbove(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightOfProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightOfProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRightOf(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetRightOf(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRightOf(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRightOf(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BelowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BelowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetBelow(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetBelow(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetBelow(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetBelow(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignHorizontalCenterWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignHorizontalCenterWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignHorizontalCenterWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignHorizontalCenterWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignHorizontalCenterWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignHorizontalCenterWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignVerticalCenterWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignVerticalCenterWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignVerticalCenterWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignVerticalCenterWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignVerticalCenterWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignVerticalCenterWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignLeftWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignLeftWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignLeftWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignLeftWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignLeftWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignLeftWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignTopWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignTopWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignTopWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignTopWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignTopWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignTopWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignRightWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignRightWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignRightWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignRightWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignRightWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignRightWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignBottomWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignBottomWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignBottomWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignBottomWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignBottomWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignBottomWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignLeftWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignLeftWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignLeftWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignLeftWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignLeftWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignLeftWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignTopWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignTopWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignTopWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignTopWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignTopWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignTopWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignRightWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignRightWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignRightWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignRightWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignRightWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignRightWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignBottomWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignBottomWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignBottomWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignBottomWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignBottomWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignBottomWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignHorizontalCenterWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignHorizontalCenterWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignHorizontalCenterWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignHorizontalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignHorizontalCenterWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignHorizontalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignVerticalCenterWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignVerticalCenterWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignVerticalCenterWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignVerticalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignVerticalCenterWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignVerticalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRelativePanelStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IRelativePanelStatics2>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox>
    {
        int32_t __stdcall get_IsReadOnly(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsReadOnly(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AcceptsReturn(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AcceptsReturn());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AcceptsReturn(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AcceptsReturn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSpellCheckEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSpellCheckEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSpellCheckEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSpellCheckEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextPredictionEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextPredictionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextPredictionEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextPredictionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Document(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::ITextDocument>(this->shim().Document());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScope(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InputScope(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<Windows::UI::Xaml::Input::InputScope const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TextChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox2> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorFontEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Paste(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Paste(*reinterpret_cast<Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Paste(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox3> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox3>
    {
        int32_t __stdcall add_TextCompositionStarted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionStarted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionStarted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionStarted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextCompositionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextCompositionEnded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionEnded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionEnded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionEnded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DesiredCandidateWindowAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CandidateWindowAlignment>(this->shim().DesiredCandidateWindowAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DesiredCandidateWindowAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DesiredCandidateWindowAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::CandidateWindowAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CandidateWindowBoundsChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CandidateWindowBoundsChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox4> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox4>
    {
        int32_t __stdcall GetLinguisticAlternativesAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>>(this->shim().GetLinguisticAlternativesAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ClipboardCopyFormat(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichEditClipboardFormat>(this->shim().ClipboardCopyFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ClipboardCopyFormat(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClipboardCopyFormat(*reinterpret_cast<Windows::UI::Xaml::Controls::RichEditClipboardFormat const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox5> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox5>
    {
        int32_t __stdcall get_SelectionHighlightColorWhenNotFocused(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColorWhenNotFocused());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColorWhenNotFocused(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColorWhenNotFocused(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLength(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox6> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox6>
    {
        int32_t __stdcall get_HorizontalTextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalTextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterCasing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CharacterCasing>(this->shim().CharacterCasing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterCasing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterCasing(*reinterpret_cast<Windows::UI::Xaml::Controls::CharacterCasing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisabledFormattingAccelerators(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DisabledFormattingAccelerators>(this->shim().DisabledFormattingAccelerators());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisabledFormattingAccelerators(uint32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledFormattingAccelerators(*reinterpret_cast<Windows::UI::Xaml::Controls::DisabledFormattingAccelerators const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CopyingToClipboard(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CopyingToClipboard(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CopyingToClipboard(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopyingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_CuttingToClipboard(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CuttingToClipboard(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CuttingToClipboard(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CuttingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox7> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox7>
    {
        int32_t __stdcall get_ContentLinkForegroundColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().ContentLinkForegroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentLinkForegroundColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkForegroundColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkBackgroundColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().ContentLinkBackgroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentLinkBackgroundColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkBackgroundColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkProviders(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::ContentLinkProviderCollection>(this->shim().ContentLinkProviders());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentLinkProviders(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkProviders(*reinterpret_cast<Windows::UI::Xaml::Documents::ContentLinkProviderCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HandwritingView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().HandwritingView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HandwritingView(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HandwritingView(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingView const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHandwritingViewEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHandwritingViewEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHandwritingViewEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHandwritingViewEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ContentLinkChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContentLinkChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContentLinkChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContentLinkInvoked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContentLinkInvoked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContentLinkInvoked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkInvoked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox8> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox8>
    {
        int32_t __stdcall get_TextDocument(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::RichEditTextDocument>(this->shim().TextDocument());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProofingMenuFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().ProofingMenuFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Description(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichEditBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>
    {
        int32_t __stdcall get_SelectionStart(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics>
    {
        int32_t __stdcall get_IsReadOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AcceptsReturnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AcceptsReturnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSpellCheckEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSpellCheckEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextPredictionEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextPredictionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScopeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics3>
    {
        int32_t __stdcall get_DesiredCandidateWindowAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DesiredCandidateWindowAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics4>
    {
        int32_t __stdcall get_ClipboardCopyFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClipboardCopyFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics5>
    {
        int32_t __stdcall get_SelectionHighlightColorWhenNotFocusedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorWhenNotFocusedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics6> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>
    {
        int32_t __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterCasingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterCasingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisabledFormattingAcceleratorsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledFormattingAcceleratorsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics7> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>
    {
        int32_t __stdcall get_ContentLinkForegroundColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkForegroundColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkBackgroundColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkBackgroundColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkProvidersProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkProvidersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HandwritingViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HandwritingViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHandwritingViewEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHandwritingViewEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics8> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics8>
    {
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProofingMenuFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProofingMenuFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2>
    {
        int32_t __stdcall get_IsContentChanging(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock>
    {
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextTrimming(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextTrimming>(this->shim().TextTrimming());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextTrimming(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextTrimming(*reinterpret_cast<Windows::UI::Xaml::TextTrimming const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Blocks(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::BlockCollection>(this->shim().Blocks());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategy(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineStackingStrategy(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterSpacing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowContentTarget(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlockOverflow>(this->shim().OverflowContentTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OverflowContentTarget(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowContentTarget(*reinterpret_cast<Windows::UI::Xaml::Controls::RichTextBlockOverflow const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSelectionEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSelectionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextSelectionEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSelectionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasOverflowContent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasOverflowContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BaselineOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Select(void* start, void* end) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(*reinterpret_cast<Windows::UI::Xaml::Documents::TextPointer const*>(&start), *reinterpret_cast<Windows::UI::Xaml::Documents::TextPointer const*>(&end));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPositionFromPoint(Windows::Foundation::Point point, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().GetPositionFromPoint(*reinterpret_cast<Windows::Foundation::Point const*>(&point)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextIndent(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().TextIndent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextIndent(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextIndent(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock2> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock2>
    {
        int32_t __stdcall get_MaxLines(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLines(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBounds(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextLineBounds(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<Windows::UI::Xaml::TextLineBounds const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpticalMarginAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpticalMarginAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorFontEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock3> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock4> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock4>
    {
        int32_t __stdcall get_TextDecorations(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::TextDecorations>(this->shim().TextDecorations());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextDecorations(uint32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextDecorations(*reinterpret_cast<Windows::UI::Text::TextDecorations const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock5> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock5>
    {
        int32_t __stdcall get_IsTextTrimmed(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalTextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalTextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextHighlighters(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>>(this->shim().TextHighlighters());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock6> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock6>
    {
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CopySelectionToClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopySelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow>
    {
        int32_t __stdcall get_OverflowContentTarget(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlockOverflow>(this->shim().OverflowContentTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OverflowContentTarget(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowContentTarget(*reinterpret_cast<Windows::UI::Xaml::Controls::RichTextBlockOverflow const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlock>(this->shim().ContentSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasOverflowContent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasOverflowContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BaselineOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPositionFromPoint(Windows::Foundation::Point point, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().GetPositionFromPoint(*reinterpret_cast<Windows::Foundation::Point const*>(&point)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow2> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>
    {
        int32_t __stdcall get_MaxLines(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLines(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow3> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>
    {
        int32_t __stdcall get_IsTextTrimmed(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlockOverflow, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>
    {
        int32_t __stdcall get_OverflowContentTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowContentTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasOverflowContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasOverflowContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>
    {
        int32_t __stdcall get_MaxLinesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3>
    {
        int32_t __stdcall get_IsTextTrimmedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics>
    {
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextTrimmingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextTrimmingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowContentTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowContentTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSelectionEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSelectionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasOverflowContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasOverflowContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextIndentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextIndentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>
    {
        int32_t __stdcall get_MaxLinesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics4>
    {
        int32_t __stdcall get_TextDecorationsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextDecorationsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics5>
    {
        int32_t __stdcall get_IsTextTrimmedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics6> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics6>
    {
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRowDefinition> : produce_base<D, Windows::UI::Xaml::Controls::IRowDefinition>
    {
        int32_t __stdcall get_Height(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::GridLength>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::GridLength>(this->shim().Height());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Height(struct struct_Windows_UI_Xaml_GridLength value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Height(*reinterpret_cast<Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActualHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ActualHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IRowDefinitionStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRowDefinitionStatics>
    {
        int32_t __stdcall get_HeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollAnchorProvider> : produce_base<D, Windows::UI::Xaml::Controls::IScrollAnchorProvider>
    {
        int32_t __stdcall get_CurrentAnchor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().CurrentAnchor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterAnchorCandidate(void* element) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterAnchorCandidate(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall UnregisterAnchorCandidate(void* element) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnregisterAnchorCandidate(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollContentPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IScrollContentPresenter>
    {
        int32_t __stdcall get_CanVerticallyScroll(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanVerticallyScroll());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanVerticallyScroll(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanVerticallyScroll(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanHorizontallyScroll(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanHorizontallyScroll());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanHorizontallyScroll(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanHorizontallyScroll(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollOwner(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ScrollOwner());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ScrollOwner(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollOwner(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LineUp() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LineDown() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LineLeft() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LineRight() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PageUp() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PageDown() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PageLeft() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PageRight() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MouseWheelUp() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MouseWheelDown() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MouseWheelLeft() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MouseWheelRight() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetHorizontalOffset(double offset) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetVerticalOffset(double offset) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MakeVisible(void* visual, Windows::Foundation::Rect rectangle, Windows::Foundation::Rect* result) noexcept final try
        {
            zero_abi<Windows::Foundation::Rect>(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::Rect>(this->shim().MakeVisible(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&visual), *reinterpret_cast<Windows::Foundation::Rect const*>(&rectangle)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollContentPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::IScrollContentPresenter2>
    {
        int32_t __stdcall get_CanContentRenderOutsideBounds(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanContentRenderOutsideBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanContentRenderOutsideBounds(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanContentRenderOutsideBounds(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SizesContentToTemplatedParent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SizesContentToTemplatedParent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SizesContentToTemplatedParent(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SizesContentToTemplatedParent(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>
    {
        int32_t __stdcall get_CanContentRenderOutsideBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanContentRenderOutsideBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SizesContentToTemplatedParentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SizesContentToTemplatedParentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewer> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewer>
    {
        int32_t __stdcall get_HorizontalScrollBarVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().HorizontalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalScrollBarVisibility(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollBarVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().VerticalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalScrollBarVisibility(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalRailEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalRailEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHorizontalRailEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalRailEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalRailEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalRailEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVerticalRailEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalRailEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalScrollChainingEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalScrollChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHorizontalScrollChainingEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalScrollChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalScrollChainingEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalScrollChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVerticalScrollChainingEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalScrollChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomChainingEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomChainingEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsScrollInertiaEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsScrollInertiaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsScrollInertiaEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsScrollInertiaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomInertiaEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomInertiaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomInertiaEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomInertiaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalScrollMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().HorizontalScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalScrollMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().VerticalScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalScrollMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ZoomMode>(this->shim().ZoomMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ZoomMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ZoomMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSnapPointsAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>(this->shim().HorizontalSnapPointsAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSnapPointsAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSnapPointsAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSnapPointsAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>(this->shim().VerticalSnapPointsAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSnapPointsAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSnapPointsAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSnapPointsType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().HorizontalSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSnapPointsType(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSnapPointsType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().VerticalSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSnapPointsType(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomSnapPointsType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().ZoomSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ZoomSnapPointsType(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollableWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ScrollableWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ComputedHorizontalScrollBarVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ComputedHorizontalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollableHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ScrollableHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ComputedVerticalScrollBarVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ComputedVerticalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinZoomFactor(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().MinZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinZoomFactor(float value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinZoomFactor(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxZoomFactor(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().MaxZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxZoomFactor(float value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxZoomFactor(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomFactor(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().ZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomSnapPoints(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<float>>(this->shim().ZoomSnapPoints());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ViewChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ViewChanged(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ViewChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ScrollToHorizontalOffset(double offset) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToHorizontalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ScrollToVerticalOffset(double offset) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToVerticalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ZoomToFactor(float factor) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomToFactor(factor);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall InvalidateScrollInfo() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InvalidateScrollInfo();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDeferredScrollingEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDeferredScrollingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDeferredScrollingEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDeferredScrollingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BringIntoViewOnFocusChange(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().BringIntoViewOnFocusChange());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BringIntoViewOnFocusChange(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BringIntoViewOnFocusChange(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewer2> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewer2>
    {
        int32_t __stdcall get_TopLeftHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().TopLeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TopLeftHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopLeftHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().LeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LeftHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().TopHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TopHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ViewChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ViewChanging(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ViewChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ChangeView(void* horizontalOffset, void* verticalOffset, void* zoomFactor, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().ChangeView(*reinterpret_cast<Windows::Foundation::IReference<double> const*>(&horizontalOffset), *reinterpret_cast<Windows::Foundation::IReference<double> const*>(&verticalOffset), *reinterpret_cast<Windows::Foundation::IReference<float> const*>(&zoomFactor)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ChangeViewWithOptionalAnimation(void* horizontalOffset, void* verticalOffset, void* zoomFactor, bool disableAnimation, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().ChangeView(*reinterpret_cast<Windows::Foundation::IReference<double> const*>(&horizontalOffset), *reinterpret_cast<Windows::Foundation::IReference<double> const*>(&verticalOffset), *reinterpret_cast<Windows::Foundation::IReference<float> const*>(&zoomFactor), disableAnimation));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewer3> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewer3>
    {
        int32_t __stdcall add_DirectManipulationStarted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DirectManipulationStarted(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DirectManipulationStarted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DirectManipulationStarted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DirectManipulationCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DirectManipulationCompleted(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DirectManipulationCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DirectManipulationCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewer4> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewer4>
    {
        int32_t __stdcall get_ReduceViewportForCoreInputViewOcclusions(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ReduceViewportForCoreInputViewOcclusions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ReduceViewportForCoreInputViewOcclusions(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ReduceViewportForCoreInputViewOcclusions(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalAnchorRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalAnchorRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalAnchorRatio(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalAnchorRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalAnchorRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalAnchorRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalAnchorRatio(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalAnchorRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanContentRenderOutsideBounds(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanContentRenderOutsideBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanContentRenderOutsideBounds(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanContentRenderOutsideBounds(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_AnchorRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().AnchorRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ScrollViewer, Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_AnchorRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AnchorRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerStatics>
    {
        int32_t __stdcall get_HorizontalSnapPointsAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSnapPointsAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSnapPointsAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSnapPointsAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSnapPointsTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSnapPointsTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomSnapPointsTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ViewportWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollableWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ScrollableWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ComputedHorizontalScrollBarVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ComputedHorizontalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExtentWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ViewportHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollableHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ScrollableHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ComputedVerticalScrollBarVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ComputedVerticalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExtentHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinZoomFactorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxZoomFactorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomFactorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomSnapPointsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomSnapPointsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalScrollBarVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetHorizontalScrollBarVisibility(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().GetHorizontalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetHorizontalScrollBarVisibility(void* element, int32_t horizontalScrollBarVisibility) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&horizontalScrollBarVisibility));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollBarVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetVerticalScrollBarVisibility(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().GetVerticalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetVerticalScrollBarVisibility(void* element, int32_t verticalScrollBarVisibility) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&verticalScrollBarVisibility));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalRailEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalRailEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsHorizontalRailEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsHorizontalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsHorizontalRailEnabled(void* element, bool isHorizontalRailEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsHorizontalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isHorizontalRailEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalRailEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalRailEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsVerticalRailEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsVerticalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsVerticalRailEnabled(void* element, bool isVerticalRailEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsVerticalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isVerticalRailEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalScrollChainingEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalScrollChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsHorizontalScrollChainingEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsHorizontalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsHorizontalScrollChainingEnabled(void* element, bool isHorizontalScrollChainingEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsHorizontalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isHorizontalScrollChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalScrollChainingEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalScrollChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsVerticalScrollChainingEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsVerticalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsVerticalScrollChainingEnabled(void* element, bool isVerticalScrollChainingEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsVerticalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isVerticalScrollChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomChainingEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsZoomChainingEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsZoomChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsZoomChainingEnabled(void* element, bool isZoomChainingEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsZoomChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isZoomChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsScrollInertiaEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsScrollInertiaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsScrollInertiaEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsScrollInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsScrollInertiaEnabled(void* element, bool isScrollInertiaEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsScrollInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isScrollInertiaEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomInertiaEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomInertiaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsZoomInertiaEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsZoomInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsZoomInertiaEnabled(void* element, bool isZoomInertiaEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsZoomInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isZoomInertiaEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalScrollModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalScrollModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetHorizontalScrollMode(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().GetHorizontalScrollMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetHorizontalScrollMode(void* element, int32_t horizontalScrollMode) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalScrollMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&horizontalScrollMode));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalScrollModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetVerticalScrollMode(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().GetVerticalScrollMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetVerticalScrollMode(void* element, int32_t verticalScrollMode) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalScrollMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&verticalScrollMode));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetZoomMode(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ZoomMode>(this->shim().GetZoomMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetZoomMode(void* element, int32_t zoomMode) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetZoomMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ZoomMode const*>(&zoomMode));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDeferredScrollingEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDeferredScrollingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsDeferredScrollingEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsDeferredScrollingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsDeferredScrollingEnabled(void* element, bool isDeferredScrollingEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsDeferredScrollingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isDeferredScrollingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BringIntoViewOnFocusChangeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BringIntoViewOnFocusChangeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetBringIntoViewOnFocusChange(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetBringIntoViewOnFocusChange(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetBringIntoViewOnFocusChange(void* element, bool bringIntoViewOnFocusChange) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetBringIntoViewOnFocusChange(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), bringIntoViewOnFocusChange);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerStatics2>
    {
        int32_t __stdcall get_TopLeftHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopLeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerStatics4>
    {
        int32_t __stdcall get_ReduceViewportForCoreInputViewOcclusionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ReduceViewportForCoreInputViewOcclusionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalAnchorRatioProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalAnchorRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalAnchorRatioProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalAnchorRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanContentRenderOutsideBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanContentRenderOutsideBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetCanContentRenderOutsideBounds(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetCanContentRenderOutsideBounds(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetCanContentRenderOutsideBounds(void* element, bool canContentRenderOutsideBounds) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetCanContentRenderOutsideBounds(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), canContentRenderOutsideBounds);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerView> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerView>
    {
        int32_t __stdcall get_HorizontalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomFactor(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().ZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs>
    {
        int32_t __stdcall get_IsIntermediate(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIntermediate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>
    {
        int32_t __stdcall get_NextView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollViewerView>(this->shim().NextView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FinalView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollViewerView>(this->shim().FinalView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsInertial(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsInertial());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISearchBox> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBox>
    {
        int32_t __stdcall get_SearchHistoryEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SearchHistoryEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SearchHistoryEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SearchHistoryEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SearchHistoryContext(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SearchHistoryContext());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SearchHistoryContext(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SearchHistoryContext(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_QueryText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusOnKeyboardInput(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().FocusOnKeyboardInput());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FocusOnKeyboardInput(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusOnKeyboardInput(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChooseSuggestionOnEnter(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ChooseSuggestionOnEnter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ChooseSuggestionOnEnter(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChooseSuggestionOnEnter(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_QueryChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().QueryChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_QueryChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SuggestionsRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SuggestionsRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SuggestionsRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SuggestionsRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_QuerySubmitted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().QuerySubmitted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_QuerySubmitted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QuerySubmitted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ResultSuggestionChosen(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ResultSuggestionChosen(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ResultSuggestionChosen(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ResultSuggestionChosen(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PrepareForFocusOnKeyboardInput(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PrepareForFocusOnKeyboardInput(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::RoutedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PrepareForFocusOnKeyboardInput(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareForFocusOnKeyboardInput(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetLocalContentSuggestionSettings(void* settings) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLocalContentSuggestionSettings(*reinterpret_cast<Windows::ApplicationModel::Search::LocalContentSuggestionSettings const*>(&settings));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SearchBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>
    {
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Language(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LinguisticDetails(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>
    {
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Language(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LinguisticDetails(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_KeyModifiers(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::System::VirtualKeyModifiers>(this->shim().KeyModifiers());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>
    {
        int32_t __stdcall get_Tag(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Tag());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_KeyModifiers(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::System::VirtualKeyModifiers>(this->shim().KeyModifiers());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxStatics>
    {
        int32_t __stdcall get_SearchHistoryEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SearchHistoryEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SearchHistoryContextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SearchHistoryContextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_QueryTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().QueryTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusOnKeyboardInputProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FocusOnKeyboardInputProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChooseSuggestionOnEnterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChooseSuggestionOnEnterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>
    {
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Language(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LinguisticDetails(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Request(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Search::SearchSuggestionsRequest>(this->shim().Request());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>
    {
        int32_t __stdcall get_AddedSections(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().AddedSections());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RemovedSections(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().RemovedSections());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgsFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgsFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISelectionChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISelectionChangedEventArgs>
    {
        int32_t __stdcall get_AddedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().AddedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RemovedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().RemovedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>
    {
        int32_t __stdcall CreateInstanceWithRemovedItemsAndAddedItems(void* removedItems, void* addedItems, void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SelectionChangedEventArgs>(this->shim().CreateInstanceWithRemovedItemsAndAddedItems(*reinterpret_cast<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> const*>(&removedItems), *reinterpret_cast<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> const*>(&addedItems), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoom> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoom>
    {
        int32_t __stdcall get_ZoomedInView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ISemanticZoomInformation>(this->shim().ZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ZoomedInView(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomedInView(*reinterpret_cast<Windows::UI::Xaml::Controls::ISemanticZoomInformation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomedOutView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ISemanticZoomInformation>(this->shim().ZoomedOutView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ZoomedOutView(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomedOutView(*reinterpret_cast<Windows::UI::Xaml::Controls::ISemanticZoomInformation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInViewActive(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomedInViewActive());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomedInViewActive(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomedInViewActive(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanChangeViews(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanChangeViews());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanChangeViews(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanChangeViews(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ViewChangeStarted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ViewChangeStarted(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ViewChangeStarted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChangeStarted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ViewChangeCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ViewChangeCompleted(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ViewChangeCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChangeCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ToggleActiveView() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ToggleActiveView();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomOutButtonEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomOutButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomOutButtonEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomOutButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoomInformation> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoomInformation>
    {
        int32_t __stdcall get_SemanticZoomOwner(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoom>(this->shim().SemanticZoomOwner());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SemanticZoomOwner(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SemanticZoomOwner(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoom const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsActiveView(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsActiveView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsActiveView(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsActiveView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInView(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomedInView(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomedInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall InitializeViewChange() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitializeViewChange();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CompleteViewChange() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChange();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MakeVisible(void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MakeVisible(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall StartViewChangeFrom(void* source, void* destination) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StartViewChangeFrom(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall StartViewChangeTo(void* source, void* destination) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StartViewChangeTo(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CompleteViewChangeFrom(void* source, void* destination) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChangeFrom(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CompleteViewChangeTo(void* source, void* destination) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChangeTo(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoomLocation> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoomLocation>
    {
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Item(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Item(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Bounds(Windows::Foundation::Rect* value) noexcept final try
        {
            zero_abi<Windows::Foundation::Rect>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Rect>(this->shim().Bounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Bounds(Windows::Foundation::Rect value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Bounds(*reinterpret_cast<Windows::Foundation::Rect const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoomStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoomStatics>
    {
        int32_t __stdcall get_ZoomedInViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomedInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomedOutViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomedOutViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInViewActiveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewActiveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanChangeViewsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanChangeViewsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomOutButtonEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomOutButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>
    {
        int32_t __stdcall get_IsSourceZoomedInView(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSourceZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSourceZoomedInView(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSourceZoomedInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourceItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoomLocation>(this->shim().SourceItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SourceItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourceItem(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DestinationItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoomLocation>(this->shim().DestinationItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DestinationItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DestinationItem(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISettingsFlyout> : produce_base<D, Windows::UI::Xaml::Controls::ISettingsFlyout>
    {
        int32_t __stdcall get_Title(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Title(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HeaderBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HeaderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IconSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IconSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_BackClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().BackClick(*reinterpret_cast<Windows::UI::Xaml::Controls::BackClickEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_BackClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Show() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Show();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ShowIndependent() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowIndependent();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Hide() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISettingsFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SettingsFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>
    {
        int32_t __stdcall get_TitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISlider> : produce_base<D, Windows::UI::Xaml::Controls::ISlider>
    {
        int32_t __stdcall get_IntermediateValue(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().IntermediateValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IntermediateValue(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IntermediateValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StepFrequency(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().StepFrequency());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_StepFrequency(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StepFrequency(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SnapsTo(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo>(this->shim().SnapsTo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SnapsTo(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SnapsTo(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TickFrequency(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().TickFrequency());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TickFrequency(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TickFrequency(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TickPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::TickPlacement>(this->shim().TickPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TickPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TickPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::TickPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDirectionReversed(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDirectionReversed());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDirectionReversed(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDirectionReversed(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsThumbToolTipEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsThumbToolTipEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsThumbToolTipEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsThumbToolTipEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ThumbToolTipValueConverter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Data::IValueConverter>(this->shim().ThumbToolTipValueConverter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ThumbToolTipValueConverter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ThumbToolTipValueConverter(*reinterpret_cast<Windows::UI::Xaml::Data::IValueConverter const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISlider2> : produce_base<D, Windows::UI::Xaml::Controls::ISlider2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISliderFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISliderFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Slider>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISliderStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISliderStatics>
    {
        int32_t __stdcall get_IntermediateValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IntermediateValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StepFrequencyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StepFrequencyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SnapsToProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SnapsToProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TickFrequencyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TickFrequencyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TickPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TickPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDirectionReversedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDirectionReversedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsThumbToolTipEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsThumbToolTipEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ThumbToolTipValueConverterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ThumbToolTipValueConverterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISliderStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ISliderStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitButton> : produce_base<D, Windows::UI::Xaml::Controls::ISplitButton>
    {
        int32_t __stdcall get_Flyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().Flyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Flyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Flyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Command(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Command(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Command(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Click(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Click(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitButton, Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Click(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Click(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer> : produce_base<D, Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory>
    {
        int32_t __stdcall CreateInstance(void* owner, void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SplitButtonAutomationPeer>(this->shim().CreateInstance(*reinterpret_cast<Windows::UI::Xaml::Controls::SplitButton const*>(&owner), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitButtonClickEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISplitButtonClickEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISplitButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SplitButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISplitButtonStatics>
    {
        int32_t __stdcall get_FlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitView> : produce_base<D, Windows::UI::Xaml::Controls::ISplitView>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Pane());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPaneOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpenPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().OpenPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpenPaneLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpenPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CompactPaneLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PanePlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SplitViewPanePlacement>(this->shim().PanePlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PanePlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PanePlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::SplitViewPanePlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SplitViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::SplitViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PaneBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_PaneClosing(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneClosing(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneClosing(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosing(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneClosed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneClosed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneClosed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitView2> : produce_base<D, Windows::UI::Xaml::Controls::ISplitView2>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitView3> : produce_base<D, Windows::UI::Xaml::Controls::ISplitView3>
    {
        int32_t __stdcall add_PaneOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneOpening(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneOpened(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISplitViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SplitView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISplitViewStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpenPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpenPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PanePlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PanePlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettingsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISplitViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ISplitViewStatics2>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanel> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanel>
    {
        int32_t __stdcall get_AreScrollSnapPointsRegular(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreScrollSnapPointsRegular());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreScrollSnapPointsRegular(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreScrollSnapPointsRegular(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanel2> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanel2>
    {
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanel4> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanel4>
    {
        int32_t __stdcall get_Spacing(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Spacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Spacing(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Spacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanel5> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanel5>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StackPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelStatics>
    {
        int32_t __stdcall get_AreScrollSnapPointsRegularProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreScrollSnapPointsRegularProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanelStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelStatics2>
    {
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanelStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelStatics4>
    {
        int32_t __stdcall get_SpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStackPanelStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelStatics5>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStyleSelector> : produce_base<D, Windows::UI::Xaml::Controls::IStyleSelector>
    {
        int32_t __stdcall SelectStyle(void* item, void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Style>(this->shim().SelectStyle(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStyleSelectorFactory> : produce_base<D, Windows::UI::Xaml::Controls::IStyleSelectorFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IStyleSelectorOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IStyleSelectorOverrides>
    {
        int32_t __stdcall SelectStyleCore(void* item, void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Style>(this->shim().SelectStyleCore(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2>
    {
        int32_t __stdcall CreateCoreIndependentInputSource(uint32_t deviceTypes, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Core::CoreIndependentInputSource>(this->shim().CreateCoreIndependentInputSource(*reinterpret_cast<Windows::UI::Core::CoreInputDeviceTypes const*>(&deviceTypes)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwapChainBackgroundPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwapChainPanel> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainPanel>
    {
        int32_t __stdcall get_CompositionScaleX(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().CompositionScaleX());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompositionScaleY(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().CompositionScaleY());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CompositionScaleChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CompositionScaleChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwapChainPanel, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CompositionScaleChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompositionScaleChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall CreateCoreIndependentInputSource(uint32_t deviceTypes, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Core::CoreIndependentInputSource>(this->shim().CreateCoreIndependentInputSource(*reinterpret_cast<Windows::UI::Core::CoreInputDeviceTypes const*>(&deviceTypes)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwapChainPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainPanelFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwapChainPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwapChainPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainPanelStatics>
    {
        int32_t __stdcall get_CompositionScaleXProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompositionScaleXProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompositionScaleYProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompositionScaleYProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeControl> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeControl>
    {
        int32_t __stdcall get_LeftItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().LeftItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LeftItems(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().RightItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RightItems(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().TopItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TopItems(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BottomItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().BottomItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BottomItems(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BottomItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Close() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Close();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeControlFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeControlStatics>
    {
        int32_t __stdcall get_LeftItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BottomItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BottomItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeItem> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItem>
    {
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IconSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IconSource(*reinterpret_cast<Windows::UI::Xaml::Controls::IconSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Command(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Command(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Command(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BehaviorOnInvoked(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked>(this->shim().BehaviorOnInvoked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BehaviorOnInvoked(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BehaviorOnInvoked(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Invoked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Invoked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwipeItem, Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Invoked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Invoked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs>
    {
        int32_t __stdcall get_SwipeControl(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeControl>(this->shim().SwipeControl());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemStatics>
    {
        int32_t __stdcall get_IconSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BehaviorOnInvokedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BehaviorOnInvokedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeItems> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItems>
    {
        int32_t __stdcall get_Mode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeMode>(this->shim().Mode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Mode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Mode(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemsFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemsFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemsStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemsStatics>
    {
        int32_t __stdcall get_ModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISymbolIcon> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIcon>
    {
        int32_t __stdcall get_Symbol(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Symbol>(this->shim().Symbol());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Symbol(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Symbol(*reinterpret_cast<Windows::UI::Xaml::Controls::Symbol const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconFactory>
    {
        int32_t __stdcall CreateInstanceWithSymbol(int32_t symbol, void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SymbolIcon>(this->shim().CreateInstanceWithSymbol(*reinterpret_cast<Windows::UI::Xaml::Controls::Symbol const*>(&symbol)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconSource> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconSource>
    {
        int32_t __stdcall get_Symbol(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Symbol>(this->shim().Symbol());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Symbol(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Symbol(*reinterpret_cast<Windows::UI::Xaml::Controls::Symbol const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SymbolIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconSourceStatics>
    {
        int32_t __stdcall get_SymbolProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SymbolProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconStatics>
    {
        int32_t __stdcall get_SymbolProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SymbolProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlock> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock>
    {
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterSpacing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextTrimming(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextTrimming>(this->shim().TextTrimming());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextTrimming(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextTrimming(*reinterpret_cast<Windows::UI::Xaml::TextTrimming const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Inlines(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::InlineCollection>(this->shim().Inlines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategy(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineStackingStrategy(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSelectionEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSelectionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextSelectionEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSelectionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BaselineOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Select(void* start, void* end) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(*reinterpret_cast<Windows::UI::Xaml::Documents::TextPointer const*>(&start), *reinterpret_cast<Windows::UI::Xaml::Documents::TextPointer const*>(&end));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlock2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock2>
    {
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLines(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLines(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBounds(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextLineBounds(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<Windows::UI::Xaml::TextLineBounds const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpticalMarginAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpticalMarginAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorFontEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlock3> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlock4> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock4>
    {
        int32_t __stdcall GetAlphaMask(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Composition::CompositionBrush>(this->shim().GetAlphaMask());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlock5> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock5>
    {
        int32_t __stdcall get_TextDecorations(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::TextDecorations>(this->shim().TextDecorations());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextDecorations(uint32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextDecorations(*reinterpret_cast<Windows::UI::Text::TextDecorations const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlock6> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock6>
    {
        int32_t __stdcall get_IsTextTrimmed(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalTextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalTextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextHighlighters(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>>(this->shim().TextHighlighters());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlock7> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock7>
    {
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CopySelectionToClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopySelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics>
    {
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextTrimmingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextTrimmingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSelectionEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSelectionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics2>
    {
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLinesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics3> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics5> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics5>
    {
        int32_t __stdcall get_TextDecorationsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextDecorationsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics6> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics6>
    {
        int32_t __stdcall get_IsTextTrimmedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics7> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics7>
    {
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBox> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox>
    {
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionLength(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionStart(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionStart(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionStart(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLength(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsReadOnly(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsReadOnly(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AcceptsReturn(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AcceptsReturn());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AcceptsReturn(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AcceptsReturn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSpellCheckEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSpellCheckEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSpellCheckEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSpellCheckEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextPredictionEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextPredictionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextPredictionEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextPredictionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScope(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InputScope(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<Windows::UI::Xaml::Input::InputScope const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TextChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::TextChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Select(int32_t start, int32_t length) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(start, length);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRectFromCharacterIndex(int32_t charIndex, bool trailingEdge, Windows::Foundation::Rect* result) noexcept final try
        {
            zero_abi<Windows::Foundation::Rect>(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::Rect>(this->shim().GetRectFromCharacterIndex(charIndex, trailingEdge));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBox2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorFontEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Paste(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Paste(*reinterpret_cast<Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Paste(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBox3> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox3>
    {
        int32_t __stdcall add_TextCompositionStarted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionStarted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionStarted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionStarted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextCompositionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextCompositionEnded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionEnded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionEnded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionEnded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DesiredCandidateWindowAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CandidateWindowAlignment>(this->shim().DesiredCandidateWindowAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DesiredCandidateWindowAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DesiredCandidateWindowAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::CandidateWindowAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CandidateWindowBoundsChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CandidateWindowBoundsChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBox4> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox4>
    {
        int32_t __stdcall GetLinguisticAlternativesAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>>(this->shim().GetLinguisticAlternativesAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBox5> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox5>
    {
        int32_t __stdcall get_SelectionHighlightColorWhenNotFocused(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColorWhenNotFocused());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColorWhenNotFocused(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColorWhenNotFocused(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBox6> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox6>
    {
        int32_t __stdcall get_HorizontalTextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalTextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterCasing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CharacterCasing>(this->shim().CharacterCasing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterCasing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterCasing(*reinterpret_cast<Windows::UI::Xaml::Controls::CharacterCasing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PlaceholderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CopyingToClipboard(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CopyingToClipboard(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CopyingToClipboard(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopyingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_CuttingToClipboard(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CuttingToClipboard(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CuttingToClipboard(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CuttingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_BeforeTextChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().BeforeTextChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_BeforeTextChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BeforeTextChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBox7> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox7>
    {
        int32_t __stdcall get_HandwritingView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().HandwritingView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HandwritingView(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HandwritingView(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingView const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHandwritingViewEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHandwritingViewEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHandwritingViewEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHandwritingViewEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBox8> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox8>
    {
        int32_t __stdcall get_CanPasteClipboardContent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanPasteClipboardContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanUndo(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanUndo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanRedo(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanRedo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProofingMenuFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().ProofingMenuFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Description(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Undo() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Undo();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Redo() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Redo();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PasteFromClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasteFromClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CopySelectionToClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopySelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CutSelectionToClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CutSelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ClearUndoRedoHistory() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClearUndoRedoHistory();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>
    {
        int32_t __stdcall get_NewText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().NewText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TextBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>
    {
        int32_t __stdcall get_SelectionStart(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics>
    {
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsReadOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AcceptsReturnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AcceptsReturnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSpellCheckEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSpellCheckEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextPredictionEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextPredictionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScopeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics3>
    {
        int32_t __stdcall get_DesiredCandidateWindowAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DesiredCandidateWindowAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics5> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics5>
    {
        int32_t __stdcall get_SelectionHighlightColorWhenNotFocusedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorWhenNotFocusedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics6> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics6>
    {
        int32_t __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterCasingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterCasingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics7> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics7>
    {
        int32_t __stdcall get_HandwritingViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HandwritingViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHandwritingViewEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHandwritingViewEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics8> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics8>
    {
        int32_t __stdcall get_CanPasteClipboardContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanPasteClipboardContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanUndoProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanUndoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanRedoProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanRedoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProofingMenuFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProofingMenuFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2>
    {
        int32_t __stdcall get_IsContentChanging(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextChangedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextCommandBarFlyout> : produce_base<D, Windows::UI::Xaml::Controls::ITextCommandBarFlyout>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TextCommandBarFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>
    {
        int32_t __stdcall get_StartIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Length(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>
    {
        int32_t __stdcall get_StartIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Length(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>
    {
        int32_t __stdcall get_StartIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Length(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITextControlPasteEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickedEventArgs>
    {
        int32_t __stdcall get_OldTime(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::TimeSpan>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewTime(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::TimeSpan>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().NewTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePicker> : produce_base<D, Windows::UI::Xaml::Controls::ITimePicker>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ClockIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ClockIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ClockIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClockIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinuteIncrement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinuteIncrement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinuteIncrement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinuteIncrement(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Time(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::TimeSpan>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Time());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Time(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Time(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TimeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TimeChanged(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TimeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TimeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePicker2> : produce_base<D, Windows::UI::Xaml::Controls::ITimePicker2>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePicker3> : produce_base<D, Windows::UI::Xaml::Controls::ITimePicker3>
    {
        int32_t __stdcall get_SelectedTime(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>(this->shim().SelectedTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedTime(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedTime(*reinterpret_cast<Windows::Foundation::IReference<Windows::Foundation::TimeSpan> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectedTimeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectedTimeChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePicker, Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectedTimeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedTimeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TimePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerFlyout> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFlyout>
    {
        int32_t __stdcall get_ClockIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ClockIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ClockIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClockIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Time(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::TimeSpan>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Time());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Time(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Time(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinuteIncrement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinuteIncrement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinuteIncrement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinuteIncrement(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TimePicked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TimePicked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePickerFlyout, Windows::UI::Xaml::Controls::TimePickedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TimePicked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TimePicked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ShowAtAsync(void* target, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>>(this->shim().ShowAtAsync(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDefaultShadowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDefaultShadowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDefaultShadowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDefaultShadowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>
    {
        int32_t __stdcall get_ClockIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClockIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TimeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TimeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinuteIncrementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinuteIncrementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs>
    {
        int32_t __stdcall get_OldTime(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>(this->shim().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewTime(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>(this->shim().NewTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ClockIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClockIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinuteIncrementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinuteIncrementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TimeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TimeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerStatics2>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerStatics3> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerStatics3>
    {
        int32_t __stdcall get_SelectedTimeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTimeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>
    {
        int32_t __stdcall get_OldTime(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::TimeSpan>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewTime(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::TimeSpan>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().NewTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem> : produce_base<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>
    {
        int32_t __stdcall get_IsChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics>
    {
        int32_t __stdcall get_IsCheckedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleSplitButton> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSplitButton>
    {
        int32_t __stdcall get_IsChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsCheckedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsCheckedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ToggleSplitButton, Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsCheckedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCheckedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory>
    {
        int32_t __stdcall CreateInstance(void* owner, void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer>(this->shim().CreateInstance(*reinterpret_cast<Windows::UI::Xaml::Controls::ToggleSplitButton const*>(&owner), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleSplitButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSplitButtonFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ToggleSplitButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleSplitButtonIsCheckedChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSplitButtonIsCheckedChangedEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleSwitch> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSwitch>
    {
        int32_t __stdcall get_IsOn(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOn());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOn(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OnContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().OnContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OnContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContent(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OnContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().OnContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OnContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OffContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().OffContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OffContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OffContent(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OffContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().OffContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OffContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OffContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Toggled(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Toggled(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Toggled(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Toggled(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleSwitchOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSwitchOverrides>
    {
        int32_t __stdcall OnToggled() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnToggled();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnOnContentChanged(void* oldContent, void* newContent) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOnContentChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&newContent));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnOffContentChanged(void* oldContent, void* newContent) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOffContentChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&newContent));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnHeaderChanged(void* oldContent, void* newContent) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnHeaderChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&newContent));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToggleSwitchStatics> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSwitchStatics>
    {
        int32_t __stdcall get_IsOnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OnContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OnContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OnContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OnContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OffContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OffContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OffContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OffContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToolTip> : produce_base<D, Windows::UI::Xaml::Controls::IToolTip>
    {
        int32_t __stdcall get_HorizontalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Placement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::PlacementMode>(this->shim().Placement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Placement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Placement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::PlacementMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementTarget(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PlacementTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlacementTarget(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementTarget(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToolTip2> : produce_base<D, Windows::UI::Xaml::Controls::IToolTip2>
    {
        int32_t __stdcall get_PlacementRect(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::Rect>>(this->shim().PlacementRect());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlacementRect(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementRect(*reinterpret_cast<Windows::Foundation::IReference<Windows::Foundation::Rect> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToolTipFactory> : produce_base<D, Windows::UI::Xaml::Controls::IToolTipFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ToolTip>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToolTipService> : produce_base<D, Windows::UI::Xaml::Controls::IToolTipService>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToolTipServiceStatics> : produce_base<D, Windows::UI::Xaml::Controls::IToolTipServiceStatics>
    {
        int32_t __stdcall get_PlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPlacement(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::Primitives::PlacementMode>(this->shim().GetPlacement(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetPlacement(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlacement(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::PlacementMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPlacementTarget(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::UIElement>(this->shim().GetPlacementTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetPlacementTarget(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlacementTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ToolTipProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ToolTipProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetToolTip(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().GetToolTip(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetToolTip(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetToolTip(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToolTipStatics> : produce_base<D, Windows::UI::Xaml::Controls::IToolTipStatics>
    {
        int32_t __stdcall get_HorizontalOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IToolTipStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IToolTipStatics2>
    {
        int32_t __stdcall get_PlacementRectProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementRectProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeView> : produce_base<D, Windows::UI::Xaml::Controls::ITreeView>
    {
        int32_t __stdcall get_RootNodes(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().RootNodes());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedNodes(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().SelectedNodes());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Expand(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Expand(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewNode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Collapse(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Collapse(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewNode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ItemInvoked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemInvoked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemInvoked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInvoked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Expanding(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Expanding(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Expanding(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Expanding(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Collapsed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Collapsed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Collapsed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Collapsed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeView2> : produce_base<D, Windows::UI::Xaml::Controls::ITreeView2>
    {
        int32_t __stdcall NodeFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().NodeFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromNode(void* node, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromNode(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewNode const*>(&node)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ItemFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanDragItems(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanDragItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanDragItems(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanDragItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanReorderItems(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanReorderItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanReorderItems(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanReorderItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().ItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ItemContainerTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DragItemsStarting(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DragItemsStarting(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DragItemsStarting(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsStarting(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DragItemsCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DragItemsCompleted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DragItemsCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs>
    {
        int32_t __stdcall get_Node(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Node());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2>
    {
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs>
    {
        int32_t __stdcall get_DropResult(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackageOperation>(this->shim().DropResult());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Data(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs>
    {
        int32_t __stdcall get_Node(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Node());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2>
    {
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItem> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItem>
    {
        int32_t __stdcall get_GlyphOpacity(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().GlyphOpacity());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GlyphOpacity(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphOpacity(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().GlyphBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GlyphBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExpandedGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ExpandedGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ExpandedGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ExpandedGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CollapsedGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CollapsedGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CollapsedGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CollapsedGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().GlyphSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GlyphSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExpanded(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExpanded());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsExpanded(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExpanded(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TreeViewItemTemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings>(this->shim().TreeViewItemTemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItem2> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItem2>
    {
        int32_t __stdcall get_HasUnrealizedChildren(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasUnrealizedChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HasUnrealizedChildren(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HasUnrealizedChildren(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>
    {
        int32_t __stdcall get_InvokedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().InvokedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemStatics>
    {
        int32_t __stdcall get_GlyphOpacityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphOpacityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExpandedGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CollapsedGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CollapsedGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExpandedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExpandedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TreeViewItemTemplateSettingsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TreeViewItemTemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemStatics2>
    {
        int32_t __stdcall get_HasUnrealizedChildrenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasUnrealizedChildrenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>
    {
        int32_t __stdcall get_ExpandedGlyphVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ExpandedGlyphVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CollapsedGlyphVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().CollapsedGlyphVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Indentation(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Indentation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DragItemsCount(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DragItemsCount());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>
    {
        int32_t __stdcall get_ExpandedGlyphVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedGlyphVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CollapsedGlyphVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CollapsedGlyphVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IndentationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IndentationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DragItemsCountProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DragItemsCountProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewList> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewList>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewListFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewListFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewList>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewNode> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewNode>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Parent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Parent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExpanded(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExpanded());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsExpanded(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExpanded(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasChildren(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Depth(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Depth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasUnrealizedChildren(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasUnrealizedChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HasUnrealizedChildren(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HasUnrealizedChildren(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Children(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().Children());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewNodeFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewNodeFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewNodeStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DepthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DepthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExpandedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExpandedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasChildrenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasChildrenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewStatics>
    {
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITreeViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewStatics2>
    {
        int32_t __stdcall get_CanDragItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanDragItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanReorderItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanReorderItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITwoPaneView> : produce_base<D, Windows::UI::Xaml::Controls::ITwoPaneView>
    {
        int32_t __stdcall get_Pane1(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Pane1());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane1(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane1(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane2(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Pane2());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane2(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane2(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane1Length(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::GridLength>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::GridLength>(this->shim().Pane1Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane1Length(struct struct_Windows_UI_Xaml_GridLength value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane1Length(*reinterpret_cast<Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane2Length(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final try
        {
            zero_abi<Windows::UI::Xaml::GridLength>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::GridLength>(this->shim().Pane2Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane2Length(struct struct_Windows_UI_Xaml_GridLength value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane2Length(*reinterpret_cast<Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PanePriority(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TwoPaneViewPriority>(this->shim().PanePriority());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PanePriority(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PanePriority(*reinterpret_cast<Windows::UI::Xaml::Controls::TwoPaneViewPriority const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Mode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TwoPaneViewMode>(this->shim().Mode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WideModeConfiguration(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TwoPaneViewWideModeConfiguration>(this->shim().WideModeConfiguration());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_WideModeConfiguration(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().WideModeConfiguration(*reinterpret_cast<Windows::UI::Xaml::Controls::TwoPaneViewWideModeConfiguration const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TallModeConfiguration(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TwoPaneViewTallModeConfiguration>(this->shim().TallModeConfiguration());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TallModeConfiguration(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TallModeConfiguration(*reinterpret_cast<Windows::UI::Xaml::Controls::TwoPaneViewTallModeConfiguration const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinWideModeWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinWideModeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinWideModeWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinWideModeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinTallModeHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinTallModeHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinTallModeHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinTallModeHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ModeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ModeChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TwoPaneView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ModeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ModeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITwoPaneViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITwoPaneViewFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TwoPaneView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::ITwoPaneViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>
    {
        int32_t __stdcall get_Pane1Property(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Pane1Property());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane2Property(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Pane2Property());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane1LengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Pane1LengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane2LengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Pane2LengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PanePriorityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PanePriorityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WideModeConfigurationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().WideModeConfigurationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TallModeConfigurationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TallModeConfigurationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinWideModeWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinWideModeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinTallModeHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinTallModeHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IUIElementCollection> : produce_base<D, Windows::UI::Xaml::Controls::IUIElementCollection>
    {
        int32_t __stdcall Move(uint32_t oldIndex, uint32_t newIndex) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Move(oldIndex, newIndex);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IUserControl> : produce_base<D, Windows::UI::Xaml::Controls::IUserControl>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IUserControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IUserControlFactory>
    {
        int32_t __stdcall CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final try
        {
            if (innerInterface) *innerInterface = nullptr;
            Windows::Foundation::IInspectable winrt_impl_innerInterface;
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::UserControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IUserControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IUserControlStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVariableSizedWrapGrid> : produce_base<D, Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>
    {
        int32_t __stdcall get_ItemHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalChildrenAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalChildrenAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalChildrenAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalChildrenAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics> : produce_base<D, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>
    {
        int32_t __stdcall get_ItemHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalChildrenAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalChildrenAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowSpanProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRowSpan(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetRowSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRowSpan(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRowSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnSpanProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetColumnSpan(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetColumnSpan(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IViewbox> : produce_base<D, Windows::UI::Xaml::Controls::IViewbox>
    {
        int32_t __stdcall get_Child(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Child(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchDirection(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StretchDirection>(this->shim().StretchDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_StretchDirection(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StretchDirection(*reinterpret_cast<Windows::UI::Xaml::Controls::StretchDirection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IViewboxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IViewboxStatics>
    {
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchDirectionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchDirectionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingPanel> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingPanel>
    {
        int32_t __stdcall get_ItemContainerGenerator(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().ItemContainerGenerator());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingPanelFactory>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>
    {
        int32_t __stdcall OnItemsChanged(void* sender, void* args) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemsChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const*>(&args));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnClearChildren() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClearChildren();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall BringIndexIntoView(int32_t index) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BringIndexIntoView(index);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingPanelProtected> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>
    {
        int32_t __stdcall AddInternalChild(void* child) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddInternalChild(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&child));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall InsertInternalChild(int32_t index, void* child) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InsertInternalChild(index, *reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&child));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RemoveInternalChildRange(int32_t index, int32_t range) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveInternalChildRange(index, range);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanel> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanel>
    {
        int32_t __stdcall get_AreScrollSnapPointsRegular(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreScrollSnapPointsRegular());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreScrollSnapPointsRegular(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreScrollSnapPointsRegular(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CleanUpVirtualizedItemEvent(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CleanUpVirtualizedItemEvent(*reinterpret_cast<Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CleanUpVirtualizedItemEvent(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CleanUpVirtualizedItemEvent(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>
    {
        int32_t __stdcall OnCleanUpVirtualizedItem(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnCleanUpVirtualizedItem(*reinterpret_cast<Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>
    {
        int32_t __stdcall get_AreScrollSnapPointsRegularProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreScrollSnapPointsRegularProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VirtualizationModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VirtualizationModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetVirtualizationMode(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::VirtualizationMode>(this->shim().GetVirtualizationMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetVirtualizationMode(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVirtualizationMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::VirtualizationMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVirtualizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVirtualizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsVirtualizing(void* o, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsVirtualizing(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&o)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebView> : produce_base<D, Windows::UI::Xaml::Controls::IWebView>
    {
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AllowedScriptNotifyUris(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>>(this->shim().AllowedScriptNotifyUris());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AllowedScriptNotifyUris(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AllowedScriptNotifyUris(*reinterpret_cast<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DataTransferPackage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().DataTransferPackage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_LoadCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().LoadCompleted(*reinterpret_cast<Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_LoadCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LoadCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ScriptNotify(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ScriptNotify(*reinterpret_cast<Windows::UI::Xaml::Controls::NotifyEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ScriptNotify(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScriptNotify(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_NavigationFailed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationFailed(*reinterpret_cast<Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationFailed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationFailed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall InvokeScript(void* scriptName, uint32_t __argumentsSize, void** arguments, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().InvokeScript(*reinterpret_cast<hstring const*>(&scriptName), array_view<hstring const>(reinterpret_cast<hstring const *>(arguments), reinterpret_cast<hstring const *>(arguments) + __argumentsSize)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Navigate(void* source) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigate(*reinterpret_cast<Windows::Foundation::Uri const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall NavigateToString(void* text) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateToString(*reinterpret_cast<hstring const*>(&text));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebView2> : produce_base<D, Windows::UI::Xaml::Controls::IWebView2>
    {
        int32_t __stdcall get_CanGoBack(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoBack());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoForward(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoForward());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DocumentTitle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DocumentTitle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_NavigationStarting(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationStarting(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationStarting(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationStarting(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContentLoading(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContentLoading(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContentLoading(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLoading(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DOMContentLoaded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DOMContentLoaded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DOMContentLoaded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DOMContentLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GoForward() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoForward();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GoBack() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Refresh() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Refresh();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Stop() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CapturePreviewToStreamAsync(void* stream, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncAction>(this->shim().CapturePreviewToStreamAsync(*reinterpret_cast<Windows::Storage::Streams::IRandomAccessStream const*>(&stream)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall InvokeScriptAsync(void* scriptName, void* arguments, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<hstring>>(this->shim().InvokeScriptAsync(*reinterpret_cast<hstring const*>(&scriptName), *reinterpret_cast<Windows::Foundation::Collections::IIterable<hstring> const*>(&arguments)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CaptureSelectedContentToDataPackageAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::ApplicationModel::DataTransfer::DataPackage>>(this->shim().CaptureSelectedContentToDataPackageAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall NavigateToLocalStreamUri(void* source, void* streamResolver) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateToLocalStreamUri(*reinterpret_cast<Windows::Foundation::Uri const*>(&source), *reinterpret_cast<Windows::Web::IUriToStreamResolver const*>(&streamResolver));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall BuildLocalStreamUri(void* contentIdentifier, void* relativePath, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::Uri>(this->shim().BuildLocalStreamUri(*reinterpret_cast<hstring const*>(&contentIdentifier), *reinterpret_cast<hstring const*>(&relativePath)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultBackgroundColor(struct struct_Windows_UI_Color* value) noexcept final try
        {
            zero_abi<Windows::UI::Color>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Color>(this->shim().DefaultBackgroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultBackgroundColor(struct struct_Windows_UI_Color value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultBackgroundColor(*reinterpret_cast<Windows::UI::Color const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_NavigationCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationCompleted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FrameNavigationStarting(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FrameNavigationStarting(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FrameNavigationStarting(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameNavigationStarting(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FrameContentLoading(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FrameContentLoading(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FrameContentLoading(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameContentLoading(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FrameDOMContentLoaded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FrameDOMContentLoaded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FrameDOMContentLoaded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameDOMContentLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FrameNavigationCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FrameNavigationCompleted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FrameNavigationCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameNavigationCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_LongRunningScriptDetected(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().LongRunningScriptDetected(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_LongRunningScriptDetected(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LongRunningScriptDetected(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_UnsafeContentWarningDisplaying(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().UnsafeContentWarningDisplaying(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_UnsafeContentWarningDisplaying(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsafeContentWarningDisplaying(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_UnviewableContentIdentified(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().UnviewableContentIdentified(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_UnviewableContentIdentified(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnviewableContentIdentified(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall NavigateWithHttpRequestMessage(void* requestMessage) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateWithHttpRequestMessage(*reinterpret_cast<Windows::Web::Http::HttpRequestMessage const*>(&requestMessage));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebView3> : produce_base<D, Windows::UI::Xaml::Controls::IWebView3>
    {
        int32_t __stdcall get_ContainsFullScreenElement(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ContainsFullScreenElement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ContainsFullScreenElementChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContainsFullScreenElementChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContainsFullScreenElementChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainsFullScreenElementChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebView4> : produce_base<D, Windows::UI::Xaml::Controls::IWebView4>
    {
        int32_t __stdcall get_ExecutionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewExecutionMode>(this->shim().ExecutionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DeferredPermissionRequests(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>>(this->shim().DeferredPermissionRequests());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Settings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewSettings>(this->shim().Settings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_UnsupportedUriSchemeIdentified(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().UnsupportedUriSchemeIdentified(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_UnsupportedUriSchemeIdentified(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsupportedUriSchemeIdentified(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_NewWindowRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NewWindowRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NewWindowRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NewWindowRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PermissionRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PermissionRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PermissionRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PermissionRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall AddWebAllowedObject(void* name, void* pObject) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddWebAllowedObject(*reinterpret_cast<hstring const*>(&name), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&pObject));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall DeferredPermissionRequestById(uint32_t id, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>(this->shim().DeferredPermissionRequestById(id));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebView5> : produce_base<D, Windows::UI::Xaml::Controls::IWebView5>
    {
        int32_t __stdcall get_XYFocusLeft(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusLeft(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusLeft(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusRight(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusRight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusRight(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusRight(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusUp(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusUp());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusUp(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusUp(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusDown(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusDown());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusDown(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusDown(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebView6> : produce_base<D, Windows::UI::Xaml::Controls::IWebView6>
    {
        int32_t __stdcall add_SeparateProcessLost(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SeparateProcessLost(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SeparateProcessLost(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SeparateProcessLost(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebView7> : produce_base<D, Windows::UI::Xaml::Controls::IWebView7>
    {
        int32_t __stdcall add_WebResourceRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().WebResourceRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_WebResourceRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().WebResourceRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewBrush> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewBrush>
    {
        int32_t __stdcall get_SourceName(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SourceName());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SourceName(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourceName(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Redraw() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Redraw();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetSource(void* source) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSource(*reinterpret_cast<Windows::UI::Xaml::Controls::WebView const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewBrushStatics> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewBrushStatics>
    {
        int32_t __stdcall get_SourceNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PermissionType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionType>(this->shim().PermissionType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Id(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Id());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Allow() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Allow();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Deny() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Deny();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewFactory4> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewFactory4>
    {
        int32_t __stdcall CreateInstanceWithExecutionMode(int32_t executionMode, void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebView>(this->shim().CreateInstanceWithExecutionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::WebViewExecutionMode const*>(&executionMode)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>
    {
        int32_t __stdcall get_ExecutionTime(int64_t* value) noexcept final try
        {
            zero_abi<Windows::Foundation::TimeSpan>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().ExecutionTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StopPageScriptExecution(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().StopPageScriptExecution());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_StopPageScriptExecution(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StopPageScriptExecution(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSuccess(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSuccess());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WebErrorStatus(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Web::WebErrorStatus>(this->shim().WebErrorStatus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WebErrorStatus(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Web::WebErrorStatus>(this->shim().WebErrorStatus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Cancel(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Referrer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Referrer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewPermissionRequest> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewPermissionRequest>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PermissionType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionType>(this->shim().PermissionType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Id(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Id());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_State(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionState>(this->shim().State());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Defer() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Defer();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Allow() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Allow();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Deny() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Deny();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs>
    {
        int32_t __stdcall get_PermissionRequest(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionRequest>(this->shim().PermissionRequest());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewSeparateProcessLostEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewSeparateProcessLostEventArgs>
    {
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewSettings> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewSettings>
    {
        int32_t __stdcall get_IsJavaScriptEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsJavaScriptEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsJavaScriptEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsJavaScriptEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsIndexedDBEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIndexedDBEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsIndexedDBEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsIndexedDBEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics>
    {
        int32_t __stdcall get_AnyScriptNotifyUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>>(this->shim().AnyScriptNotifyUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AllowedScriptNotifyUrisProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AllowedScriptNotifyUrisProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DataTransferPackageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataTransferPackageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics2>
    {
        int32_t __stdcall get_CanGoBackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoBackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoForwardProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoForwardProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DocumentTitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DocumentTitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultBackgroundColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultBackgroundColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics3>
    {
        int32_t __stdcall get_ContainsFullScreenElementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContainsFullScreenElementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics4>
    {
        int32_t __stdcall get_DefaultExecutionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewExecutionMode>(this->shim().DefaultExecutionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ClearTemporaryWebDataAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<Windows::Foundation::IAsyncAction>(this->shim().ClearTemporaryWebDataAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics5>
    {
        int32_t __stdcall get_XYFocusLeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusRightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusRightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusUpProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusUpProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusDownProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusDownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Handled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Referrer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Referrer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2>
    {
        int32_t __stdcall get_MediaType(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MediaType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>
    {
        int32_t __stdcall get_Request(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Web::Http::HttpRequestMessage>(this->shim().Request());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Response(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Web::Http::HttpResponseMessage>(this->shim().Response());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Response(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Response(*reinterpret_cast<Windows::Web::Http::HttpResponseMessage const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetDeferral(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::Deferral>(this->shim().GetDeferral());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWrapGrid> : produce_base<D, Windows::UI::Xaml::Controls::IWrapGrid>
    {
        int32_t __stdcall get_ItemWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalChildrenAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalChildrenAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalChildrenAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalChildrenAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, Windows::UI::Xaml::Controls::IWrapGridStatics> : produce_base<D, Windows::UI::Xaml::Controls::IWrapGridStatics>
    {
        int32_t __stdcall get_ItemWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalChildrenAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalChildrenAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
template <typename T, typename D>
struct __declspec(empty_bases) produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IAppBarOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IAppBarOverrides>
{
    auto OnClosed(Windows::Foundation::IInspectable const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnClosed(e);
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        return this->shim().OnCleanUpVirtualizedItem(e);
    }
};}
namespace winrt::Windows::UI::Xaml::Controls
{
    constexpr auto operator|(DisabledFormattingAccelerators const left, DisabledFormattingAccelerators const right) noexcept
    {
        return static_cast<DisabledFormattingAccelerators>(impl::to_underlying_type(left) | impl::to_underlying_type(right));
    }
    constexpr auto operator|=(DisabledFormattingAccelerators& left, DisabledFormattingAccelerators const right) noexcept
    {
        left = left | right;
        return left;
    }
    constexpr auto operator&(DisabledFormattingAccelerators const left, DisabledFormattingAccelerators const right) noexcept
    {
        return static_cast<DisabledFormattingAccelerators>(impl::to_underlying_type(left) & impl::to_underlying_type(right));
    }
    constexpr auto operator&=(DisabledFormattingAccelerators& left, DisabledFormattingAccelerators const right) noexcept
    {
        left = left & right;
        return left;
    }
    constexpr auto operator~(DisabledFormattingAccelerators const value) noexcept
    {
        return static_cast<DisabledFormattingAccelerators>(~impl::to_underlying_type(value));
    }
    constexpr auto operator^(DisabledFormattingAccelerators const left, DisabledFormattingAccelerators const right) noexcept
    {
        return static_cast<DisabledFormattingAccelerators>(impl::to_underlying_type(left) ^ impl::to_underlying_type(right));
    }
    constexpr auto operator^=(DisabledFormattingAccelerators& left, DisabledFormattingAccelerators const right) noexcept
    {
        left = left ^ right;
        return left;
    }
    inline AppBar::AppBar()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBar::IsOpenProperty()
    {
        return impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics>([&](auto&& f) { return f.IsOpenProperty(); });
    }
    inline auto AppBar::IsStickyProperty()
    {
        return impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics>([&](auto&& f) { return f.IsStickyProperty(); });
    }
    inline auto AppBar::ClosedDisplayModeProperty()
    {
        return impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics2>([&](auto&& f) { return f.ClosedDisplayModeProperty(); });
    }
    inline auto AppBar::LightDismissOverlayModeProperty()
    {
        return impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics4>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline AppBarButton::AppBarButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBarButton::LabelProperty()
    {
        return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>([&](auto&& f) { return f.LabelProperty(); });
    }
    inline auto AppBarButton::IconProperty()
    {
        return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>([&](auto&& f) { return f.IconProperty(); });
    }
    inline auto AppBarButton::IsCompactProperty()
    {
        return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>([&](auto&& f) { return f.IsCompactProperty(); });
    }
    inline auto AppBarButton::LabelPositionProperty()
    {
        return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>([&](auto&& f) { return f.LabelPositionProperty(); });
    }
    inline auto AppBarButton::IsInOverflowProperty()
    {
        return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>([&](auto&& f) { return f.IsInOverflowProperty(); });
    }
    inline auto AppBarButton::DynamicOverflowOrderProperty()
    {
        return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>([&](auto&& f) { return f.DynamicOverflowOrderProperty(); });
    }
    inline auto AppBarButton::KeyboardAcceleratorTextOverrideProperty()
    {
        return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics4>([&](auto&& f) { return f.KeyboardAcceleratorTextOverrideProperty(); });
    }
    inline AppBarElementContainer::AppBarElementContainer()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBarElementContainer, Windows::UI::Xaml::Controls::IAppBarElementContainerFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBarElementContainer::IsCompactProperty()
    {
        return impl::call_factory<AppBarElementContainer, Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>([&](auto&& f) { return f.IsCompactProperty(); });
    }
    inline auto AppBarElementContainer::IsInOverflowProperty()
    {
        return impl::call_factory<AppBarElementContainer, Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>([&](auto&& f) { return f.IsInOverflowProperty(); });
    }
    inline auto AppBarElementContainer::DynamicOverflowOrderProperty()
    {
        return impl::call_factory<AppBarElementContainer, Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>([&](auto&& f) { return f.DynamicOverflowOrderProperty(); });
    }
    inline AppBarSeparator::AppBarSeparator()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBarSeparator::IsCompactProperty()
    {
        return impl::call_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>([&](auto&& f) { return f.IsCompactProperty(); });
    }
    inline auto AppBarSeparator::IsInOverflowProperty()
    {
        return impl::call_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>([&](auto&& f) { return f.IsInOverflowProperty(); });
    }
    inline auto AppBarSeparator::DynamicOverflowOrderProperty()
    {
        return impl::call_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>([&](auto&& f) { return f.DynamicOverflowOrderProperty(); });
    }
    inline AppBarToggleButton::AppBarToggleButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBarToggleButton::LabelProperty()
    {
        return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>([&](auto&& f) { return f.LabelProperty(); });
    }
    inline auto AppBarToggleButton::IconProperty()
    {
        return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>([&](auto&& f) { return f.IconProperty(); });
    }
    inline auto AppBarToggleButton::IsCompactProperty()
    {
        return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>([&](auto&& f) { return f.IsCompactProperty(); });
    }
    inline auto AppBarToggleButton::LabelPositionProperty()
    {
        return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>([&](auto&& f) { return f.LabelPositionProperty(); });
    }
    inline auto AppBarToggleButton::IsInOverflowProperty()
    {
        return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>([&](auto&& f) { return f.IsInOverflowProperty(); });
    }
    inline auto AppBarToggleButton::DynamicOverflowOrderProperty()
    {
        return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>([&](auto&& f) { return f.DynamicOverflowOrderProperty(); });
    }
    inline auto AppBarToggleButton::KeyboardAcceleratorTextOverrideProperty()
    {
        return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4>([&](auto&& f) { return f.KeyboardAcceleratorTextOverrideProperty(); });
    }
    inline AutoSuggestBox::AutoSuggestBox() :
        AutoSuggestBox(impl::call_factory<AutoSuggestBox>([](auto&& f) { return f.template ActivateInstance<AutoSuggestBox>(); }))
    {
    }
    inline auto AutoSuggestBox::MaxSuggestionListHeightProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.MaxSuggestionListHeightProperty(); });
    }
    inline auto AutoSuggestBox::IsSuggestionListOpenProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.IsSuggestionListOpenProperty(); });
    }
    inline auto AutoSuggestBox::TextMemberPathProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.TextMemberPathProperty(); });
    }
    inline auto AutoSuggestBox::TextProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.TextProperty(); });
    }
    inline auto AutoSuggestBox::UpdateTextOnSelectProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.UpdateTextOnSelectProperty(); });
    }
    inline auto AutoSuggestBox::PlaceholderTextProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto AutoSuggestBox::HeaderProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto AutoSuggestBox::AutoMaximizeSuggestionAreaProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.AutoMaximizeSuggestionAreaProperty(); });
    }
    inline auto AutoSuggestBox::TextBoxStyleProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.TextBoxStyleProperty(); });
    }
    inline auto AutoSuggestBox::QueryIconProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>([&](auto&& f) { return f.QueryIconProperty(); });
    }
    inline auto AutoSuggestBox::LightDismissOverlayModeProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto AutoSuggestBox::DescriptionProperty()
    {
        return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4>([&](auto&& f) { return f.DescriptionProperty(); });
    }
    inline AutoSuggestBoxQuerySubmittedEventArgs::AutoSuggestBoxQuerySubmittedEventArgs() :
        AutoSuggestBoxQuerySubmittedEventArgs(impl::call_factory<AutoSuggestBoxQuerySubmittedEventArgs>([](auto&& f) { return f.template ActivateInstance<AutoSuggestBoxQuerySubmittedEventArgs>(); }))
    {
    }
    inline AutoSuggestBoxSuggestionChosenEventArgs::AutoSuggestBoxSuggestionChosenEventArgs() :
        AutoSuggestBoxSuggestionChosenEventArgs(impl::call_factory<AutoSuggestBoxSuggestionChosenEventArgs>([](auto&& f) { return f.template ActivateInstance<AutoSuggestBoxSuggestionChosenEventArgs>(); }))
    {
    }
    inline AutoSuggestBoxTextChangedEventArgs::AutoSuggestBoxTextChangedEventArgs() :
        AutoSuggestBoxTextChangedEventArgs(impl::call_factory<AutoSuggestBoxTextChangedEventArgs>([](auto&& f) { return f.template ActivateInstance<AutoSuggestBoxTextChangedEventArgs>(); }))
    {
    }
    inline auto AutoSuggestBoxTextChangedEventArgs::ReasonProperty()
    {
        return impl::call_factory<AutoSuggestBoxTextChangedEventArgs, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics>([&](auto&& f) { return f.ReasonProperty(); });
    }
    inline BackClickEventArgs::BackClickEventArgs() :
        BackClickEventArgs(impl::call_factory<BackClickEventArgs>([](auto&& f) { return f.template ActivateInstance<BackClickEventArgs>(); }))
    {
    }
    inline BitmapIcon::BitmapIcon()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto BitmapIcon::UriSourceProperty()
    {
        return impl::call_factory<BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconStatics>([&](auto&& f) { return f.UriSourceProperty(); });
    }
    inline auto BitmapIcon::ShowAsMonochromeProperty()
    {
        return impl::call_factory<BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconStatics2>([&](auto&& f) { return f.ShowAsMonochromeProperty(); });
    }
    inline BitmapIconSource::BitmapIconSource()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto BitmapIconSource::UriSourceProperty()
    {
        return impl::call_factory<BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>([&](auto&& f) { return f.UriSourceProperty(); });
    }
    inline auto BitmapIconSource::ShowAsMonochromeProperty()
    {
        return impl::call_factory<BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>([&](auto&& f) { return f.ShowAsMonochromeProperty(); });
    }
    inline Border::Border() :
        Border(impl::call_factory<Border>([](auto&& f) { return f.template ActivateInstance<Border>(); }))
    {
    }
    inline auto Border::BorderBrushProperty()
    {
        return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.BorderBrushProperty(); });
    }
    inline auto Border::BorderThicknessProperty()
    {
        return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.BorderThicknessProperty(); });
    }
    inline auto Border::BackgroundProperty()
    {
        return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.BackgroundProperty(); });
    }
    inline auto Border::CornerRadiusProperty()
    {
        return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.CornerRadiusProperty(); });
    }
    inline auto Border::PaddingProperty()
    {
        return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto Border::ChildTransitionsProperty()
    {
        return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.ChildTransitionsProperty(); });
    }
    inline auto Border::BackgroundSizingProperty()
    {
        return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics2>([&](auto&& f) { return f.BackgroundSizingProperty(); });
    }
    inline Button::Button()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Button, Windows::UI::Xaml::Controls::IButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Button::FlyoutProperty()
    {
        return impl::call_factory<Button, Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout>([&](auto&& f) { return f.FlyoutProperty(); });
    }
    inline CalendarDatePicker::CalendarDatePicker()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto CalendarDatePicker::DateProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.DateProperty(); });
    }
    inline auto CalendarDatePicker::IsCalendarOpenProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.IsCalendarOpenProperty(); });
    }
    inline auto CalendarDatePicker::DateFormatProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.DateFormatProperty(); });
    }
    inline auto CalendarDatePicker::PlaceholderTextProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto CalendarDatePicker::HeaderProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto CalendarDatePicker::HeaderTemplateProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto CalendarDatePicker::CalendarViewStyleProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.CalendarViewStyleProperty(); });
    }
    inline auto CalendarDatePicker::MinDateProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.MinDateProperty(); });
    }
    inline auto CalendarDatePicker::MaxDateProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.MaxDateProperty(); });
    }
    inline auto CalendarDatePicker::IsTodayHighlightedProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.IsTodayHighlightedProperty(); });
    }
    inline auto CalendarDatePicker::DisplayModeProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.DisplayModeProperty(); });
    }
    inline auto CalendarDatePicker::FirstDayOfWeekProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.FirstDayOfWeekProperty(); });
    }
    inline auto CalendarDatePicker::DayOfWeekFormatProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.DayOfWeekFormatProperty(); });
    }
    inline auto CalendarDatePicker::CalendarIdentifierProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.CalendarIdentifierProperty(); });
    }
    inline auto CalendarDatePicker::IsOutOfScopeEnabledProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.IsOutOfScopeEnabledProperty(); });
    }
    inline auto CalendarDatePicker::IsGroupLabelVisibleProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.IsGroupLabelVisibleProperty(); });
    }
    inline auto CalendarDatePicker::LightDismissOverlayModeProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto CalendarDatePicker::DescriptionProperty()
    {
        return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3>([&](auto&& f) { return f.DescriptionProperty(); });
    }
    inline CalendarView::CalendarView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto CalendarView::CalendarIdentifierProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarIdentifierProperty(); });
    }
    inline auto CalendarView::DayOfWeekFormatProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayOfWeekFormatProperty(); });
    }
    inline auto CalendarView::IsGroupLabelVisibleProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.IsGroupLabelVisibleProperty(); });
    }
    inline auto CalendarView::DisplayModeProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DisplayModeProperty(); });
    }
    inline auto CalendarView::FirstDayOfWeekProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstDayOfWeekProperty(); });
    }
    inline auto CalendarView::IsOutOfScopeEnabledProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.IsOutOfScopeEnabledProperty(); });
    }
    inline auto CalendarView::IsTodayHighlightedProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.IsTodayHighlightedProperty(); });
    }
    inline auto CalendarView::MaxDateProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MaxDateProperty(); });
    }
    inline auto CalendarView::MinDateProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MinDateProperty(); });
    }
    inline auto CalendarView::NumberOfWeeksInViewProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.NumberOfWeeksInViewProperty(); });
    }
    inline auto CalendarView::SelectedDatesProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedDatesProperty(); });
    }
    inline auto CalendarView::SelectionModeProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
    }
    inline auto CalendarView::TemplateSettingsProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.TemplateSettingsProperty(); });
    }
    inline auto CalendarView::FocusBorderBrushProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FocusBorderBrushProperty(); });
    }
    inline auto CalendarView::SelectedHoverBorderBrushProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedHoverBorderBrushProperty(); });
    }
    inline auto CalendarView::SelectedPressedBorderBrushProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedPressedBorderBrushProperty(); });
    }
    inline auto CalendarView::SelectedBorderBrushProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedBorderBrushProperty(); });
    }
    inline auto CalendarView::HoverBorderBrushProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.HoverBorderBrushProperty(); });
    }
    inline auto CalendarView::PressedBorderBrushProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.PressedBorderBrushProperty(); });
    }
    inline auto CalendarView::CalendarItemBorderBrushProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarItemBorderBrushProperty(); });
    }
    inline auto CalendarView::OutOfScopeBackgroundProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.OutOfScopeBackgroundProperty(); });
    }
    inline auto CalendarView::CalendarItemBackgroundProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarItemBackgroundProperty(); });
    }
    inline auto CalendarView::PressedForegroundProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.PressedForegroundProperty(); });
    }
    inline auto CalendarView::TodayForegroundProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.TodayForegroundProperty(); });
    }
    inline auto CalendarView::BlackoutForegroundProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.BlackoutForegroundProperty(); });
    }
    inline auto CalendarView::SelectedForegroundProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedForegroundProperty(); });
    }
    inline auto CalendarView::OutOfScopeForegroundProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.OutOfScopeForegroundProperty(); });
    }
    inline auto CalendarView::CalendarItemForegroundProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarItemForegroundProperty(); });
    }
    inline auto CalendarView::DayItemFontFamilyProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayItemFontFamilyProperty(); });
    }
    inline auto CalendarView::DayItemFontSizeProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayItemFontSizeProperty(); });
    }
    inline auto CalendarView::DayItemFontStyleProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayItemFontStyleProperty(); });
    }
    inline auto CalendarView::DayItemFontWeightProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayItemFontWeightProperty(); });
    }
    inline auto CalendarView::TodayFontWeightProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.TodayFontWeightProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelFontFamilyProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfMonthLabelFontFamilyProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelFontSizeProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfMonthLabelFontSizeProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelFontStyleProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfMonthLabelFontStyleProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelFontWeightProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfMonthLabelFontWeightProperty(); });
    }
    inline auto CalendarView::MonthYearItemFontFamilyProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MonthYearItemFontFamilyProperty(); });
    }
    inline auto CalendarView::MonthYearItemFontSizeProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MonthYearItemFontSizeProperty(); });
    }
    inline auto CalendarView::MonthYearItemFontStyleProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MonthYearItemFontStyleProperty(); });
    }
    inline auto CalendarView::MonthYearItemFontWeightProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MonthYearItemFontWeightProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelFontFamilyProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfYearDecadeLabelFontFamilyProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelFontSizeProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfYearDecadeLabelFontSizeProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelFontStyleProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfYearDecadeLabelFontStyleProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelFontWeightProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfYearDecadeLabelFontWeightProperty(); });
    }
    inline auto CalendarView::HorizontalDayItemAlignmentProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.HorizontalDayItemAlignmentProperty(); });
    }
    inline auto CalendarView::VerticalDayItemAlignmentProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.VerticalDayItemAlignmentProperty(); });
    }
    inline auto CalendarView::HorizontalFirstOfMonthLabelAlignmentProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.HorizontalFirstOfMonthLabelAlignmentProperty(); });
    }
    inline auto CalendarView::VerticalFirstOfMonthLabelAlignmentProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.VerticalFirstOfMonthLabelAlignmentProperty(); });
    }
    inline auto CalendarView::CalendarItemBorderThicknessProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarItemBorderThicknessProperty(); });
    }
    inline auto CalendarView::CalendarViewDayItemStyleProperty()
    {
        return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarViewDayItemStyleProperty(); });
    }
    inline CalendarViewDayItem::CalendarViewDayItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto CalendarViewDayItem::IsBlackoutProperty()
    {
        return impl::call_factory<CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>([&](auto&& f) { return f.IsBlackoutProperty(); });
    }
    inline auto CalendarViewDayItem::DateProperty()
    {
        return impl::call_factory<CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>([&](auto&& f) { return f.DateProperty(); });
    }
    inline Canvas::Canvas()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Canvas::LeftProperty()
    {
        return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.LeftProperty(); });
    }
    inline auto Canvas::GetLeft(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.GetLeft(element); });
    }
    inline auto Canvas::SetLeft(Windows::UI::Xaml::UIElement const& element, double length)
    {
        impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.SetLeft(element, length); });
    }
    inline auto Canvas::TopProperty()
    {
        return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.TopProperty(); });
    }
    inline auto Canvas::GetTop(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.GetTop(element); });
    }
    inline auto Canvas::SetTop(Windows::UI::Xaml::UIElement const& element, double length)
    {
        impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.SetTop(element, length); });
    }
    inline auto Canvas::ZIndexProperty()
    {
        return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.ZIndexProperty(); });
    }
    inline auto Canvas::GetZIndex(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.GetZIndex(element); });
    }
    inline auto Canvas::SetZIndex(Windows::UI::Xaml::UIElement const& element, int32_t value)
    {
        impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.SetZIndex(element, value); });
    }
    inline CaptureElement::CaptureElement() :
        CaptureElement(impl::call_factory<CaptureElement>([](auto&& f) { return f.template ActivateInstance<CaptureElement>(); }))
    {
    }
    inline auto CaptureElement::SourceProperty()
    {
        return impl::call_factory<CaptureElement, Windows::UI::Xaml::Controls::ICaptureElementStatics>([&](auto&& f) { return f.SourceProperty(); });
    }
    inline auto CaptureElement::StretchProperty()
    {
        return impl::call_factory<CaptureElement, Windows::UI::Xaml::Controls::ICaptureElementStatics>([&](auto&& f) { return f.StretchProperty(); });
    }
    inline CheckBox::CheckBox()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CheckBox, Windows::UI::Xaml::Controls::ICheckBoxFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ChoosingGroupHeaderContainerEventArgs::ChoosingGroupHeaderContainerEventArgs() :
        ChoosingGroupHeaderContainerEventArgs(impl::call_factory<ChoosingGroupHeaderContainerEventArgs>([](auto&& f) { return f.template ActivateInstance<ChoosingGroupHeaderContainerEventArgs>(); }))
    {
    }
    inline ChoosingItemContainerEventArgs::ChoosingItemContainerEventArgs() :
        ChoosingItemContainerEventArgs(impl::call_factory<ChoosingItemContainerEventArgs>([](auto&& f) { return f.template ActivateInstance<ChoosingItemContainerEventArgs>(); }))
    {
    }
    inline ColorPicker::ColorPicker()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ColorPicker::ColorProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.ColorProperty(); });
    }
    inline auto ColorPicker::PreviousColorProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.PreviousColorProperty(); });
    }
    inline auto ColorPicker::IsAlphaEnabledProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsAlphaEnabledProperty(); });
    }
    inline auto ColorPicker::IsColorSpectrumVisibleProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsColorSpectrumVisibleProperty(); });
    }
    inline auto ColorPicker::IsColorPreviewVisibleProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsColorPreviewVisibleProperty(); });
    }
    inline auto ColorPicker::IsColorSliderVisibleProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsColorSliderVisibleProperty(); });
    }
    inline auto ColorPicker::IsAlphaSliderVisibleProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsAlphaSliderVisibleProperty(); });
    }
    inline auto ColorPicker::IsMoreButtonVisibleProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsMoreButtonVisibleProperty(); });
    }
    inline auto ColorPicker::IsColorChannelTextInputVisibleProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsColorChannelTextInputVisibleProperty(); });
    }
    inline auto ColorPicker::IsAlphaTextInputVisibleProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsAlphaTextInputVisibleProperty(); });
    }
    inline auto ColorPicker::IsHexInputVisibleProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsHexInputVisibleProperty(); });
    }
    inline auto ColorPicker::MinHueProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MinHueProperty(); });
    }
    inline auto ColorPicker::MaxHueProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MaxHueProperty(); });
    }
    inline auto ColorPicker::MinSaturationProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MinSaturationProperty(); });
    }
    inline auto ColorPicker::MaxSaturationProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MaxSaturationProperty(); });
    }
    inline auto ColorPicker::MinValueProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MinValueProperty(); });
    }
    inline auto ColorPicker::MaxValueProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MaxValueProperty(); });
    }
    inline auto ColorPicker::ColorSpectrumShapeProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.ColorSpectrumShapeProperty(); });
    }
    inline auto ColorPicker::ColorSpectrumComponentsProperty()
    {
        return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.ColorSpectrumComponentsProperty(); });
    }
    inline ColumnDefinition::ColumnDefinition() :
        ColumnDefinition(impl::call_factory<ColumnDefinition>([](auto&& f) { return f.template ActivateInstance<ColumnDefinition>(); }))
    {
    }
    inline auto ColumnDefinition::WidthProperty()
    {
        return impl::call_factory<ColumnDefinition, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>([&](auto&& f) { return f.WidthProperty(); });
    }
    inline auto ColumnDefinition::MaxWidthProperty()
    {
        return impl::call_factory<ColumnDefinition, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>([&](auto&& f) { return f.MaxWidthProperty(); });
    }
    inline auto ColumnDefinition::MinWidthProperty()
    {
        return impl::call_factory<ColumnDefinition, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>([&](auto&& f) { return f.MinWidthProperty(); });
    }
    inline ComboBox::ComboBox()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ComboBox::IsDropDownOpenProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics>([&](auto&& f) { return f.IsDropDownOpenProperty(); });
    }
    inline auto ComboBox::MaxDropDownHeightProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics>([&](auto&& f) { return f.MaxDropDownHeightProperty(); });
    }
    inline auto ComboBox::HeaderProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto ComboBox::HeaderTemplateProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto ComboBox::PlaceholderTextProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>([&](auto&& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto ComboBox::LightDismissOverlayModeProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics3>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto ComboBox::IsTextSearchEnabledProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics3>([&](auto&& f) { return f.IsTextSearchEnabledProperty(); });
    }
    inline auto ComboBox::SelectionChangedTriggerProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics4>([&](auto&& f) { return f.SelectionChangedTriggerProperty(); });
    }
    inline auto ComboBox::PlaceholderForegroundProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics5>([&](auto&& f) { return f.PlaceholderForegroundProperty(); });
    }
    inline auto ComboBox::IsEditableProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics6>([&](auto&& f) { return f.IsEditableProperty(); });
    }
    inline auto ComboBox::TextProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics6>([&](auto&& f) { return f.TextProperty(); });
    }
    inline auto ComboBox::TextBoxStyleProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics6>([&](auto&& f) { return f.TextBoxStyleProperty(); });
    }
    inline auto ComboBox::DescriptionProperty()
    {
        return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics6>([&](auto&& f) { return f.DescriptionProperty(); });
    }
    inline ComboBoxItem::ComboBoxItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ComboBoxItem, Windows::UI::Xaml::Controls::IComboBoxItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline CommandBar::CommandBar()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto CommandBar::PrimaryCommandsProperty()
    {
        return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics>([&](auto&& f) { return f.PrimaryCommandsProperty(); });
    }
    inline auto CommandBar::SecondaryCommandsProperty()
    {
        return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics>([&](auto&& f) { return f.SecondaryCommandsProperty(); });
    }
    inline auto CommandBar::CommandBarOverflowPresenterStyleProperty()
    {
        return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics2>([&](auto&& f) { return f.CommandBarOverflowPresenterStyleProperty(); });
    }
    inline auto CommandBar::DefaultLabelPositionProperty()
    {
        return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics3>([&](auto&& f) { return f.DefaultLabelPositionProperty(); });
    }
    inline auto CommandBar::OverflowButtonVisibilityProperty()
    {
        return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics3>([&](auto&& f) { return f.OverflowButtonVisibilityProperty(); });
    }
    inline auto CommandBar::IsDynamicOverflowEnabledProperty()
    {
        return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics3>([&](auto&& f) { return f.IsDynamicOverflowEnabledProperty(); });
    }
    inline CommandBarFlyout::CommandBarFlyout()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CommandBarFlyout, Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline CommandBarOverflowPresenter::CommandBarOverflowPresenter()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CommandBarOverflowPresenter, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ContainerContentChangingEventArgs::ContainerContentChangingEventArgs() :
        ContainerContentChangingEventArgs(impl::call_factory<ContainerContentChangingEventArgs>([](auto&& f) { return f.template ActivateInstance<ContainerContentChangingEventArgs>(); }))
    {
    }
    inline ContentControl::ContentControl()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ContentControl::ContentProperty()
    {
        return impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>([&](auto&& f) { return f.ContentProperty(); });
    }
    inline auto ContentControl::ContentTemplateProperty()
    {
        return impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>([&](auto&& f) { return f.ContentTemplateProperty(); });
    }
    inline auto ContentControl::ContentTemplateSelectorProperty()
    {
        return impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>([&](auto&& f) { return f.ContentTemplateSelectorProperty(); });
    }
    inline auto ContentControl::ContentTransitionsProperty()
    {
        return impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>([&](auto&& f) { return f.ContentTransitionsProperty(); });
    }
    inline ContentDialog::ContentDialog()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ContentDialog::TitleProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.TitleProperty(); });
    }
    inline auto ContentDialog::TitleTemplateProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.TitleTemplateProperty(); });
    }
    inline auto ContentDialog::FullSizeDesiredProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.FullSizeDesiredProperty(); });
    }
    inline auto ContentDialog::PrimaryButtonTextProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.PrimaryButtonTextProperty(); });
    }
    inline auto ContentDialog::SecondaryButtonTextProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.SecondaryButtonTextProperty(); });
    }
    inline auto ContentDialog::PrimaryButtonCommandProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.PrimaryButtonCommandProperty(); });
    }
    inline auto ContentDialog::SecondaryButtonCommandProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.SecondaryButtonCommandProperty(); });
    }
    inline auto ContentDialog::PrimaryButtonCommandParameterProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.PrimaryButtonCommandParameterProperty(); });
    }
    inline auto ContentDialog::SecondaryButtonCommandParameterProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.SecondaryButtonCommandParameterProperty(); });
    }
    inline auto ContentDialog::IsPrimaryButtonEnabledProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.IsPrimaryButtonEnabledProperty(); });
    }
    inline auto ContentDialog::IsSecondaryButtonEnabledProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.IsSecondaryButtonEnabledProperty(); });
    }
    inline auto ContentDialog::CloseButtonTextProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.CloseButtonTextProperty(); });
    }
    inline auto ContentDialog::CloseButtonCommandProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.CloseButtonCommandProperty(); });
    }
    inline auto ContentDialog::CloseButtonCommandParameterProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.CloseButtonCommandParameterProperty(); });
    }
    inline auto ContentDialog::PrimaryButtonStyleProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.PrimaryButtonStyleProperty(); });
    }
    inline auto ContentDialog::SecondaryButtonStyleProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.SecondaryButtonStyleProperty(); });
    }
    inline auto ContentDialog::CloseButtonStyleProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.CloseButtonStyleProperty(); });
    }
    inline auto ContentDialog::DefaultButtonProperty()
    {
        return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.DefaultButtonProperty(); });
    }
    inline ContentPresenter::ContentPresenter()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ContentPresenter::ContentProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ContentProperty(); });
    }
    inline auto ContentPresenter::ContentTemplateProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ContentTemplateProperty(); });
    }
    inline auto ContentPresenter::ContentTemplateSelectorProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ContentTemplateSelectorProperty(); });
    }
    inline auto ContentPresenter::ContentTransitionsProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ContentTransitionsProperty(); });
    }
    inline auto ContentPresenter::FontSizeProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontSizeProperty(); });
    }
    inline auto ContentPresenter::FontFamilyProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
    }
    inline auto ContentPresenter::FontWeightProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontWeightProperty(); });
    }
    inline auto ContentPresenter::FontStyleProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontStyleProperty(); });
    }
    inline auto ContentPresenter::FontStretchProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontStretchProperty(); });
    }
    inline auto ContentPresenter::CharacterSpacingProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.CharacterSpacingProperty(); });
    }
    inline auto ContentPresenter::ForegroundProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ForegroundProperty(); });
    }
    inline auto ContentPresenter::OpticalMarginAlignmentProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics2>([&](auto&& f) { return f.OpticalMarginAlignmentProperty(); });
    }
    inline auto ContentPresenter::TextLineBoundsProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics2>([&](auto&& f) { return f.TextLineBoundsProperty(); });
    }
    inline auto ContentPresenter::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics3>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto ContentPresenter::TextWrappingProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.TextWrappingProperty(); });
    }
    inline auto ContentPresenter::MaxLinesProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.MaxLinesProperty(); });
    }
    inline auto ContentPresenter::LineStackingStrategyProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.LineStackingStrategyProperty(); });
    }
    inline auto ContentPresenter::LineHeightProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.LineHeightProperty(); });
    }
    inline auto ContentPresenter::BorderBrushProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.BorderBrushProperty(); });
    }
    inline auto ContentPresenter::BorderThicknessProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.BorderThicknessProperty(); });
    }
    inline auto ContentPresenter::CornerRadiusProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.CornerRadiusProperty(); });
    }
    inline auto ContentPresenter::PaddingProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto ContentPresenter::BackgroundProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.BackgroundProperty(); });
    }
    inline auto ContentPresenter::HorizontalContentAlignmentProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.HorizontalContentAlignmentProperty(); });
    }
    inline auto ContentPresenter::VerticalContentAlignmentProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.VerticalContentAlignmentProperty(); });
    }
    inline auto ContentPresenter::BackgroundSizingProperty()
    {
        return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics5>([&](auto&& f) { return f.BackgroundSizingProperty(); });
    }
    inline auto Control::FontSizeProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontSizeProperty(); });
    }
    inline auto Control::FontFamilyProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
    }
    inline auto Control::FontWeightProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontWeightProperty(); });
    }
    inline auto Control::FontStyleProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontStyleProperty(); });
    }
    inline auto Control::FontStretchProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontStretchProperty(); });
    }
    inline auto Control::CharacterSpacingProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.CharacterSpacingProperty(); });
    }
    inline auto Control::ForegroundProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.ForegroundProperty(); });
    }
    inline auto Control::IsTabStopProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.IsTabStopProperty(); });
    }
    inline auto Control::IsEnabledProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.IsEnabledProperty(); });
    }
    inline auto Control::TabIndexProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.TabIndexProperty(); });
    }
    inline auto Control::TabNavigationProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.TabNavigationProperty(); });
    }
    inline auto Control::TemplateProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.TemplateProperty(); });
    }
    inline auto Control::PaddingProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto Control::HorizontalContentAlignmentProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.HorizontalContentAlignmentProperty(); });
    }
    inline auto Control::VerticalContentAlignmentProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.VerticalContentAlignmentProperty(); });
    }
    inline auto Control::BackgroundProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.BackgroundProperty(); });
    }
    inline auto Control::BorderThicknessProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.BorderThicknessProperty(); });
    }
    inline auto Control::BorderBrushProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.BorderBrushProperty(); });
    }
    inline auto Control::DefaultStyleKeyProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.DefaultStyleKeyProperty(); });
    }
    inline auto Control::FocusStateProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FocusStateProperty(); });
    }
    inline auto Control::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics2>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto Control::UseSystemFocusVisualsProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>([&](auto&& f) { return f.UseSystemFocusVisualsProperty(); });
    }
    inline auto Control::IsTemplateFocusTargetProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>([&](auto&& f) { return f.IsTemplateFocusTargetProperty(); });
    }
    inline auto Control::GetIsTemplateFocusTarget(Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>([&](auto&& f) { return f.GetIsTemplateFocusTarget(element); });
    }
    inline auto Control::SetIsTemplateFocusTarget(Windows::UI::Xaml::FrameworkElement const& element, bool value)
    {
        impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>([&](auto&& f) { return f.SetIsTemplateFocusTarget(element, value); });
    }
    inline auto Control::IsFocusEngagementEnabledProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.IsFocusEngagementEnabledProperty(); });
    }
    inline auto Control::IsFocusEngagedProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.IsFocusEngagedProperty(); });
    }
    inline auto Control::RequiresPointerProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.RequiresPointerProperty(); });
    }
    inline auto Control::XYFocusLeftProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.XYFocusLeftProperty(); });
    }
    inline auto Control::XYFocusRightProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.XYFocusRightProperty(); });
    }
    inline auto Control::XYFocusUpProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.XYFocusUpProperty(); });
    }
    inline auto Control::XYFocusDownProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.XYFocusDownProperty(); });
    }
    inline auto Control::ElementSoundModeProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.ElementSoundModeProperty(); });
    }
    inline auto Control::DefaultStyleResourceUriProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>([&](auto&& f) { return f.DefaultStyleResourceUriProperty(); });
    }
    inline auto Control::IsTemplateKeyTipTargetProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>([&](auto&& f) { return f.IsTemplateKeyTipTargetProperty(); });
    }
    inline auto Control::GetIsTemplateKeyTipTarget(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>([&](auto&& f) { return f.GetIsTemplateKeyTipTarget(element); });
    }
    inline auto Control::SetIsTemplateKeyTipTarget(Windows::UI::Xaml::DependencyObject const& element, bool value)
    {
        impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>([&](auto&& f) { return f.SetIsTemplateKeyTipTarget(element, value); });
    }
    inline auto Control::BackgroundSizingProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics7>([&](auto&& f) { return f.BackgroundSizingProperty(); });
    }
    inline auto Control::CornerRadiusProperty()
    {
        return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics7>([&](auto&& f) { return f.CornerRadiusProperty(); });
    }
    inline ControlTemplate::ControlTemplate() :
        ControlTemplate(impl::call_factory<ControlTemplate>([](auto&& f) { return f.template ActivateInstance<ControlTemplate>(); }))
    {
    }
    inline DataTemplateSelector::DataTemplateSelector()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<DataTemplateSelector, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline DatePickedEventArgs::DatePickedEventArgs() :
        DatePickedEventArgs(impl::call_factory<DatePickedEventArgs>([](auto&& f) { return f.template ActivateInstance<DatePickedEventArgs>(); }))
    {
    }
    inline DatePicker::DatePicker()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto DatePicker::HeaderProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto DatePicker::HeaderTemplateProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto DatePicker::CalendarIdentifierProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.CalendarIdentifierProperty(); });
    }
    inline auto DatePicker::DateProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.DateProperty(); });
    }
    inline auto DatePicker::DayVisibleProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.DayVisibleProperty(); });
    }
    inline auto DatePicker::MonthVisibleProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.MonthVisibleProperty(); });
    }
    inline auto DatePicker::YearVisibleProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.YearVisibleProperty(); });
    }
    inline auto DatePicker::DayFormatProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.DayFormatProperty(); });
    }
    inline auto DatePicker::MonthFormatProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.MonthFormatProperty(); });
    }
    inline auto DatePicker::YearFormatProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.YearFormatProperty(); });
    }
    inline auto DatePicker::MinYearProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.MinYearProperty(); });
    }
    inline auto DatePicker::MaxYearProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.MaxYearProperty(); });
    }
    inline auto DatePicker::OrientationProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto DatePicker::LightDismissOverlayModeProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics2>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto DatePicker::SelectedDateProperty()
    {
        return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics3>([&](auto&& f) { return f.SelectedDateProperty(); });
    }
    inline DatePickerFlyout::DatePickerFlyout() :
        DatePickerFlyout(impl::call_factory<DatePickerFlyout>([](auto&& f) { return f.template ActivateInstance<DatePickerFlyout>(); }))
    {
    }
    inline auto DatePickerFlyout::CalendarIdentifierProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.CalendarIdentifierProperty(); });
    }
    inline auto DatePickerFlyout::DateProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.DateProperty(); });
    }
    inline auto DatePickerFlyout::DayVisibleProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.DayVisibleProperty(); });
    }
    inline auto DatePickerFlyout::MonthVisibleProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.MonthVisibleProperty(); });
    }
    inline auto DatePickerFlyout::YearVisibleProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.YearVisibleProperty(); });
    }
    inline auto DatePickerFlyout::MinYearProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.MinYearProperty(); });
    }
    inline auto DatePickerFlyout::MaxYearProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.MaxYearProperty(); });
    }
    inline auto DatePickerFlyout::DayFormatProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>([&](auto&& f) { return f.DayFormatProperty(); });
    }
    inline auto DatePickerFlyout::MonthFormatProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>([&](auto&& f) { return f.MonthFormatProperty(); });
    }
    inline auto DatePickerFlyout::YearFormatProperty()
    {
        return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>([&](auto&& f) { return f.YearFormatProperty(); });
    }
    inline auto DatePickerFlyoutItem::PrimaryTextProperty()
    {
        return impl::call_factory<DatePickerFlyoutItem, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>([&](auto&& f) { return f.PrimaryTextProperty(); });
    }
    inline auto DatePickerFlyoutItem::SecondaryTextProperty()
    {
        return impl::call_factory<DatePickerFlyoutItem, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>([&](auto&& f) { return f.SecondaryTextProperty(); });
    }
    inline auto DatePickerFlyoutPresenter::IsDefaultShadowEnabledProperty()
    {
        return impl::call_factory<DatePickerFlyoutPresenter, Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2>([&](auto&& f) { return f.IsDefaultShadowEnabledProperty(); });
    }
    inline DragItemsStartingEventArgs::DragItemsStartingEventArgs() :
        DragItemsStartingEventArgs(impl::call_factory<DragItemsStartingEventArgs>([](auto&& f) { return f.template ActivateInstance<DragItemsStartingEventArgs>(); }))
    {
    }
    inline DropDownButton::DropDownButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<DropDownButton, Windows::UI::Xaml::Controls::IDropDownButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline DropDownButtonAutomationPeer::DropDownButtonAutomationPeer(Windows::UI::Xaml::Controls::DropDownButton const& owner)
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<DropDownButtonAutomationPeer, Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory>([&](auto&& f) { return f.CreateInstance(owner, baseInterface, innerInterface); });
    }
    inline DynamicOverflowItemsChangingEventArgs::DynamicOverflowItemsChangingEventArgs() :
        DynamicOverflowItemsChangingEventArgs(impl::call_factory<DynamicOverflowItemsChangingEventArgs>([](auto&& f) { return f.template ActivateInstance<DynamicOverflowItemsChangingEventArgs>(); }))
    {
    }
    inline FlipView::FlipView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FlipView, Windows::UI::Xaml::Controls::IFlipViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto FlipView::UseTouchAnimationsForAllNavigationProperty()
    {
        return impl::call_factory<FlipView, Windows::UI::Xaml::Controls::IFlipViewStatics2>([&](auto&& f) { return f.UseTouchAnimationsForAllNavigationProperty(); });
    }
    inline FlipViewItem::FlipViewItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FlipViewItem, Windows::UI::Xaml::Controls::IFlipViewItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline Flyout::Flyout()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Flyout, Windows::UI::Xaml::Controls::IFlyoutFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Flyout::ContentProperty()
    {
        return impl::call_factory<Flyout, Windows::UI::Xaml::Controls::IFlyoutStatics>([&](auto&& f) { return f.ContentProperty(); });
    }
    inline auto Flyout::FlyoutPresenterStyleProperty()
    {
        return impl::call_factory<Flyout, Windows::UI::Xaml::Controls::IFlyoutStatics>([&](auto&& f) { return f.FlyoutPresenterStyleProperty(); });
    }
    inline FlyoutPresenter::FlyoutPresenter()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FlyoutPresenter, Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto FlyoutPresenter::IsDefaultShadowEnabledProperty()
    {
        return impl::call_factory<FlyoutPresenter, Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2>([&](auto&& f) { return f.IsDefaultShadowEnabledProperty(); });
    }
    inline FontIcon::FontIcon()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto FontIcon::GlyphProperty()
    {
        return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.GlyphProperty(); });
    }
    inline auto FontIcon::FontSizeProperty()
    {
        return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.FontSizeProperty(); });
    }
    inline auto FontIcon::FontFamilyProperty()
    {
        return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
    }
    inline auto FontIcon::FontWeightProperty()
    {
        return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.FontWeightProperty(); });
    }
    inline auto FontIcon::FontStyleProperty()
    {
        return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.FontStyleProperty(); });
    }
    inline auto FontIcon::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics2>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto FontIcon::MirroredWhenRightToLeftProperty()
    {
        return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics3>([&](auto&& f) { return f.MirroredWhenRightToLeftProperty(); });
    }
    inline FontIconSource::FontIconSource()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto FontIconSource::GlyphProperty()
    {
        return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.GlyphProperty(); });
    }
    inline auto FontIconSource::FontSizeProperty()
    {
        return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.FontSizeProperty(); });
    }
    inline auto FontIconSource::FontFamilyProperty()
    {
        return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
    }
    inline auto FontIconSource::FontWeightProperty()
    {
        return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.FontWeightProperty(); });
    }
    inline auto FontIconSource::FontStyleProperty()
    {
        return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.FontStyleProperty(); });
    }
    inline auto FontIconSource::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto FontIconSource::MirroredWhenRightToLeftProperty()
    {
        return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.MirroredWhenRightToLeftProperty(); });
    }
    inline Frame::Frame()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Frame::CacheSizeProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.CacheSizeProperty(); });
    }
    inline auto Frame::CanGoBackProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.CanGoBackProperty(); });
    }
    inline auto Frame::CanGoForwardProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.CanGoForwardProperty(); });
    }
    inline auto Frame::CurrentSourcePageTypeProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.CurrentSourcePageTypeProperty(); });
    }
    inline auto Frame::SourcePageTypeProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.SourcePageTypeProperty(); });
    }
    inline auto Frame::BackStackDepthProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.BackStackDepthProperty(); });
    }
    inline auto Frame::BackStackProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics2>([&](auto&& f) { return f.BackStackProperty(); });
    }
    inline auto Frame::ForwardStackProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics2>([&](auto&& f) { return f.ForwardStackProperty(); });
    }
    inline auto Frame::IsNavigationStackEnabledProperty()
    {
        return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics5>([&](auto&& f) { return f.IsNavigationStackEnabledProperty(); });
    }
    inline Grid::Grid()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Grid::RowProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.RowProperty(); });
    }
    inline auto Grid::GetRow(Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.GetRow(element); });
    }
    inline auto Grid::SetRow(Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
    {
        impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.SetRow(element, value); });
    }
    inline auto Grid::ColumnProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.ColumnProperty(); });
    }
    inline auto Grid::GetColumn(Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.GetColumn(element); });
    }
    inline auto Grid::SetColumn(Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
    {
        impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.SetColumn(element, value); });
    }
    inline auto Grid::RowSpanProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.RowSpanProperty(); });
    }
    inline auto Grid::GetRowSpan(Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.GetRowSpan(element); });
    }
    inline auto Grid::SetRowSpan(Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
    {
        impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.SetRowSpan(element, value); });
    }
    inline auto Grid::ColumnSpanProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.ColumnSpanProperty(); });
    }
    inline auto Grid::GetColumnSpan(Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.GetColumnSpan(element); });
    }
    inline auto Grid::SetColumnSpan(Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
    {
        impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.SetColumnSpan(element, value); });
    }
    inline auto Grid::BorderBrushProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>([&](auto&& f) { return f.BorderBrushProperty(); });
    }
    inline auto Grid::BorderThicknessProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>([&](auto&& f) { return f.BorderThicknessProperty(); });
    }
    inline auto Grid::CornerRadiusProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>([&](auto&& f) { return f.CornerRadiusProperty(); });
    }
    inline auto Grid::PaddingProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto Grid::RowSpacingProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics3>([&](auto&& f) { return f.RowSpacingProperty(); });
    }
    inline auto Grid::ColumnSpacingProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics3>([&](auto&& f) { return f.ColumnSpacingProperty(); });
    }
    inline auto Grid::BackgroundSizingProperty()
    {
        return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics4>([&](auto&& f) { return f.BackgroundSizingProperty(); });
    }
    inline GridView::GridView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GridView, Windows::UI::Xaml::Controls::IGridViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GridViewHeaderItem::GridViewHeaderItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GridViewHeaderItem, Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GridViewItem::GridViewItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GridViewItem, Windows::UI::Xaml::Controls::IGridViewItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GroupItem::GroupItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GroupItem, Windows::UI::Xaml::Controls::IGroupItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GroupStyle::GroupStyle()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GroupStyle, Windows::UI::Xaml::Controls::IGroupStyleFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GroupStyleSelector::GroupStyleSelector()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GroupStyleSelector, Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline HandwritingView::HandwritingView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto HandwritingView::PlacementTargetProperty()
    {
        return impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>([&](auto&& f) { return f.PlacementTargetProperty(); });
    }
    inline auto HandwritingView::PlacementAlignmentProperty()
    {
        return impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>([&](auto&& f) { return f.PlacementAlignmentProperty(); });
    }
    inline auto HandwritingView::IsOpenProperty()
    {
        return impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>([&](auto&& f) { return f.IsOpenProperty(); });
    }
    inline auto HandwritingView::AreCandidatesEnabledProperty()
    {
        return impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>([&](auto&& f) { return f.AreCandidatesEnabledProperty(); });
    }
    inline Hub::Hub()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Hub::HeaderProperty()
    {
        return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto Hub::HeaderTemplateProperty()
    {
        return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto Hub::OrientationProperty()
    {
        return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto Hub::DefaultSectionIndexProperty()
    {
        return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.DefaultSectionIndexProperty(); });
    }
    inline auto Hub::SemanticZoomOwnerProperty()
    {
        return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.SemanticZoomOwnerProperty(); });
    }
    inline auto Hub::IsActiveViewProperty()
    {
        return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.IsActiveViewProperty(); });
    }
    inline auto Hub::IsZoomedInViewProperty()
    {
        return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.IsZoomedInViewProperty(); });
    }
    inline HubSection::HubSection()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto HubSection::HeaderProperty()
    {
        return impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto HubSection::HeaderTemplateProperty()
    {
        return impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto HubSection::ContentTemplateProperty()
    {
        return impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>([&](auto&& f) { return f.ContentTemplateProperty(); });
    }
    inline auto HubSection::IsHeaderInteractiveProperty()
    {
        return impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>([&](auto&& f) { return f.IsHeaderInteractiveProperty(); });
    }
    inline HubSectionHeaderClickEventArgs::HubSectionHeaderClickEventArgs() :
        HubSectionHeaderClickEventArgs(impl::call_factory<HubSectionHeaderClickEventArgs>([](auto&& f) { return f.template ActivateInstance<HubSectionHeaderClickEventArgs>(); }))
    {
    }
    inline HyperlinkButton::HyperlinkButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<HyperlinkButton, Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto HyperlinkButton::NavigateUriProperty()
    {
        return impl::call_factory<HyperlinkButton, Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>([&](auto&& f) { return f.NavigateUriProperty(); });
    }
    inline auto IconElement::ForegroundProperty()
    {
        return impl::call_factory<IconElement, Windows::UI::Xaml::Controls::IIconElementStatics>([&](auto&& f) { return f.ForegroundProperty(); });
    }
    inline auto IconSource::ForegroundProperty()
    {
        return impl::call_factory<IconSource, Windows::UI::Xaml::Controls::IIconSourceStatics>([&](auto&& f) { return f.ForegroundProperty(); });
    }
    inline IconSourceElement::IconSourceElement()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<IconSourceElement, Windows::UI::Xaml::Controls::IIconSourceElementFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto IconSourceElement::IconSourceProperty()
    {
        return impl::call_factory<IconSourceElement, Windows::UI::Xaml::Controls::IIconSourceElementStatics>([&](auto&& f) { return f.IconSourceProperty(); });
    }
    inline Image::Image() :
        Image(impl::call_factory<Image>([](auto&& f) { return f.template ActivateInstance<Image>(); }))
    {
    }
    inline auto Image::SourceProperty()
    {
        return impl::call_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>([&](auto&& f) { return f.SourceProperty(); });
    }
    inline auto Image::StretchProperty()
    {
        return impl::call_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>([&](auto&& f) { return f.StretchProperty(); });
    }
    inline auto Image::NineGridProperty()
    {
        return impl::call_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>([&](auto&& f) { return f.NineGridProperty(); });
    }
    inline auto Image::PlayToSourceProperty()
    {
        return impl::call_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>([&](auto&& f) { return f.PlayToSourceProperty(); });
    }
    inline InkCanvas::InkCanvas()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkCanvas, Windows::UI::Xaml::Controls::IInkCanvasFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbar::InkToolbar()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbar::InitialControlsProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.InitialControlsProperty(); });
    }
    inline auto InkToolbar::ChildrenProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.ChildrenProperty(); });
    }
    inline auto InkToolbar::ActiveToolProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.ActiveToolProperty(); });
    }
    inline auto InkToolbar::InkDrawingAttributesProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.InkDrawingAttributesProperty(); });
    }
    inline auto InkToolbar::IsRulerButtonCheckedProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.IsRulerButtonCheckedProperty(); });
    }
    inline auto InkToolbar::TargetInkCanvasProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.TargetInkCanvasProperty(); });
    }
    inline auto InkToolbar::IsStencilButtonCheckedProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>([&](auto&& f) { return f.IsStencilButtonCheckedProperty(); });
    }
    inline auto InkToolbar::ButtonFlyoutPlacementProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>([&](auto&& f) { return f.ButtonFlyoutPlacementProperty(); });
    }
    inline auto InkToolbar::OrientationProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto InkToolbar::TargetInkPresenterProperty()
    {
        return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics3>([&](auto&& f) { return f.TargetInkPresenterProperty(); });
    }
    inline InkToolbarBallpointPenButton::InkToolbarBallpointPenButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarBallpointPenButton, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbarCustomPenButton::InkToolbarCustomPenButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarCustomPenButton::CustomPenProperty()
    {
        return impl::call_factory<InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>([&](auto&& f) { return f.CustomPenProperty(); });
    }
    inline auto InkToolbarCustomPenButton::ConfigurationContentProperty()
    {
        return impl::call_factory<InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>([&](auto&& f) { return f.ConfigurationContentProperty(); });
    }
    inline InkToolbarCustomToggleButton::InkToolbarCustomToggleButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarCustomToggleButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbarCustomToolButton::InkToolbarCustomToolButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarCustomToolButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarCustomToolButton::ConfigurationContentProperty()
    {
        return impl::call_factory<InkToolbarCustomToolButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics>([&](auto&& f) { return f.ConfigurationContentProperty(); });
    }
    inline InkToolbarEraserButton::InkToolbarEraserButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarEraserButton, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarEraserButton::IsClearAllVisibleProperty()
    {
        return impl::call_factory<InkToolbarEraserButton, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2>([&](auto&& f) { return f.IsClearAllVisibleProperty(); });
    }
    inline InkToolbarFlyoutItem::InkToolbarFlyoutItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarFlyoutItem::KindProperty()
    {
        return impl::call_factory<InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>([&](auto&& f) { return f.KindProperty(); });
    }
    inline auto InkToolbarFlyoutItem::IsCheckedProperty()
    {
        return impl::call_factory<InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>([&](auto&& f) { return f.IsCheckedProperty(); });
    }
    inline InkToolbarHighlighterButton::InkToolbarHighlighterButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarHighlighterButton, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbarIsStencilButtonCheckedChangedEventArgs::InkToolbarIsStencilButtonCheckedChangedEventArgs() :
        InkToolbarIsStencilButtonCheckedChangedEventArgs(impl::call_factory<InkToolbarIsStencilButtonCheckedChangedEventArgs>([](auto&& f) { return f.template ActivateInstance<InkToolbarIsStencilButtonCheckedChangedEventArgs>(); }))
    {
    }
    inline auto InkToolbarMenuButton::IsExtensionGlyphShownProperty()
    {
        return impl::call_factory<InkToolbarMenuButton, Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics>([&](auto&& f) { return f.IsExtensionGlyphShownProperty(); });
    }
    inline auto InkToolbarPenButton::PaletteProperty()
    {
        return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.PaletteProperty(); });
    }
    inline auto InkToolbarPenButton::MinStrokeWidthProperty()
    {
        return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.MinStrokeWidthProperty(); });
    }
    inline auto InkToolbarPenButton::MaxStrokeWidthProperty()
    {
        return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.MaxStrokeWidthProperty(); });
    }
    inline auto InkToolbarPenButton::SelectedBrushProperty()
    {
        return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.SelectedBrushProperty(); });
    }
    inline auto InkToolbarPenButton::SelectedBrushIndexProperty()
    {
        return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.SelectedBrushIndexProperty(); });
    }
    inline auto InkToolbarPenButton::SelectedStrokeWidthProperty()
    {
        return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.SelectedStrokeWidthProperty(); });
    }
    inline InkToolbarPenConfigurationControl::InkToolbarPenConfigurationControl()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarPenConfigurationControl::PenButtonProperty()
    {
        return impl::call_factory<InkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics>([&](auto&& f) { return f.PenButtonProperty(); });
    }
    inline InkToolbarPencilButton::InkToolbarPencilButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarPencilButton, Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbarRulerButton::InkToolbarRulerButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarRulerButton, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarRulerButton::RulerProperty()
    {
        return impl::call_factory<InkToolbarRulerButton, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics>([&](auto&& f) { return f.RulerProperty(); });
    }
    inline InkToolbarStencilButton::InkToolbarStencilButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarStencilButton::RulerProperty()
    {
        return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.RulerProperty(); });
    }
    inline auto InkToolbarStencilButton::ProtractorProperty()
    {
        return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.ProtractorProperty(); });
    }
    inline auto InkToolbarStencilButton::SelectedStencilProperty()
    {
        return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.SelectedStencilProperty(); });
    }
    inline auto InkToolbarStencilButton::IsRulerItemVisibleProperty()
    {
        return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.IsRulerItemVisibleProperty(); });
    }
    inline auto InkToolbarStencilButton::IsProtractorItemVisibleProperty()
    {
        return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.IsProtractorItemVisibleProperty(); });
    }
    inline auto InkToolbarToolButton::IsExtensionGlyphShownProperty()
    {
        return impl::call_factory<InkToolbarToolButton, Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics>([&](auto&& f) { return f.IsExtensionGlyphShownProperty(); });
    }
    inline ItemClickEventArgs::ItemClickEventArgs() :
        ItemClickEventArgs(impl::call_factory<ItemClickEventArgs>([](auto&& f) { return f.template ActivateInstance<ItemClickEventArgs>(); }))
    {
    }
    inline ItemsControl::ItemsControl()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ItemsControl::ItemsSourceProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemsSourceProperty(); });
    }
    inline auto ItemsControl::ItemTemplateProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemTemplateProperty(); });
    }
    inline auto ItemsControl::ItemTemplateSelectorProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemTemplateSelectorProperty(); });
    }
    inline auto ItemsControl::ItemsPanelProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemsPanelProperty(); });
    }
    inline auto ItemsControl::DisplayMemberPathProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.DisplayMemberPathProperty(); });
    }
    inline auto ItemsControl::ItemContainerStyleProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemContainerStyleProperty(); });
    }
    inline auto ItemsControl::ItemContainerStyleSelectorProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemContainerStyleSelectorProperty(); });
    }
    inline auto ItemsControl::ItemContainerTransitionsProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemContainerTransitionsProperty(); });
    }
    inline auto ItemsControl::GroupStyleSelectorProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.GroupStyleSelectorProperty(); });
    }
    inline auto ItemsControl::IsGroupingProperty()
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.IsGroupingProperty(); });
    }
    inline auto ItemsControl::GetItemsOwner(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.GetItemsOwner(element); });
    }
    inline auto ItemsControl::ItemsControlFromItemContainer(Windows::UI::Xaml::DependencyObject const& container)
    {
        return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemsControlFromItemContainer(container); });
    }
    inline ItemsPanelTemplate::ItemsPanelTemplate() :
        ItemsPanelTemplate(impl::call_factory<ItemsPanelTemplate>([](auto&& f) { return f.template ActivateInstance<ItemsPanelTemplate>(); }))
    {
    }
    inline ItemsPickedEventArgs::ItemsPickedEventArgs() :
        ItemsPickedEventArgs(impl::call_factory<ItemsPickedEventArgs>([](auto&& f) { return f.template ActivateInstance<ItemsPickedEventArgs>(); }))
    {
    }
    inline ItemsPresenter::ItemsPresenter() :
        ItemsPresenter(impl::call_factory<ItemsPresenter>([](auto&& f) { return f.template ActivateInstance<ItemsPresenter>(); }))
    {
    }
    inline auto ItemsPresenter::HeaderProperty()
    {
        return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto ItemsPresenter::HeaderTemplateProperty()
    {
        return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto ItemsPresenter::HeaderTransitionsProperty()
    {
        return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>([&](auto&& f) { return f.HeaderTransitionsProperty(); });
    }
    inline auto ItemsPresenter::PaddingProperty()
    {
        return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto ItemsPresenter::FooterProperty()
    {
        return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>([&](auto&& f) { return f.FooterProperty(); });
    }
    inline auto ItemsPresenter::FooterTemplateProperty()
    {
        return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>([&](auto&& f) { return f.FooterTemplateProperty(); });
    }
    inline auto ItemsPresenter::FooterTransitionsProperty()
    {
        return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>([&](auto&& f) { return f.FooterTransitionsProperty(); });
    }
    inline ItemsStackPanel::ItemsStackPanel() :
        ItemsStackPanel(impl::call_factory<ItemsStackPanel>([](auto&& f) { return f.template ActivateInstance<ItemsStackPanel>(); }))
    {
    }
    inline auto ItemsStackPanel::GroupPaddingProperty()
    {
        return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>([&](auto&& f) { return f.GroupPaddingProperty(); });
    }
    inline auto ItemsStackPanel::OrientationProperty()
    {
        return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto ItemsStackPanel::GroupHeaderPlacementProperty()
    {
        return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>([&](auto&& f) { return f.GroupHeaderPlacementProperty(); });
    }
    inline auto ItemsStackPanel::CacheLengthProperty()
    {
        return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>([&](auto&& f) { return f.CacheLengthProperty(); });
    }
    inline auto ItemsStackPanel::AreStickyGroupHeadersEnabledProperty()
    {
        return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics2>([&](auto&& f) { return f.AreStickyGroupHeadersEnabledProperty(); });
    }
    inline ItemsWrapGrid::ItemsWrapGrid() :
        ItemsWrapGrid(impl::call_factory<ItemsWrapGrid>([](auto&& f) { return f.template ActivateInstance<ItemsWrapGrid>(); }))
    {
    }
    inline auto ItemsWrapGrid::GroupPaddingProperty()
    {
        return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.GroupPaddingProperty(); });
    }
    inline auto ItemsWrapGrid::OrientationProperty()
    {
        return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto ItemsWrapGrid::MaximumRowsOrColumnsProperty()
    {
        return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.MaximumRowsOrColumnsProperty(); });
    }
    inline auto ItemsWrapGrid::ItemWidthProperty()
    {
        return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.ItemWidthProperty(); });
    }
    inline auto ItemsWrapGrid::ItemHeightProperty()
    {
        return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.ItemHeightProperty(); });
    }
    inline auto ItemsWrapGrid::GroupHeaderPlacementProperty()
    {
        return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.GroupHeaderPlacementProperty(); });
    }
    inline auto ItemsWrapGrid::CacheLengthProperty()
    {
        return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.CacheLengthProperty(); });
    }
    inline auto ItemsWrapGrid::AreStickyGroupHeadersEnabledProperty()
    {
        return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics2>([&](auto&& f) { return f.AreStickyGroupHeadersEnabledProperty(); });
    }
    inline ListBox::ListBox()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListBox, Windows::UI::Xaml::Controls::IListBoxFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ListBox::SelectionModeProperty()
    {
        return impl::call_factory<ListBox, Windows::UI::Xaml::Controls::IListBoxStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
    }
    inline auto ListBox::SingleSelectionFollowsFocusProperty()
    {
        return impl::call_factory<ListBox, Windows::UI::Xaml::Controls::IListBoxStatics2>([&](auto&& f) { return f.SingleSelectionFollowsFocusProperty(); });
    }
    inline ListBoxItem::ListBoxItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListBoxItem, Windows::UI::Xaml::Controls::IListBoxItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ListPickerFlyout::ListPickerFlyout() :
        ListPickerFlyout(impl::call_factory<ListPickerFlyout>([](auto&& f) { return f.template ActivateInstance<ListPickerFlyout>(); }))
    {
    }
    inline auto ListPickerFlyout::ItemsSourceProperty()
    {
        return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.ItemsSourceProperty(); });
    }
    inline auto ListPickerFlyout::ItemTemplateProperty()
    {
        return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.ItemTemplateProperty(); });
    }
    inline auto ListPickerFlyout::DisplayMemberPathProperty()
    {
        return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.DisplayMemberPathProperty(); });
    }
    inline auto ListPickerFlyout::SelectionModeProperty()
    {
        return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
    }
    inline auto ListPickerFlyout::SelectedIndexProperty()
    {
        return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectedIndexProperty(); });
    }
    inline auto ListPickerFlyout::SelectedItemProperty()
    {
        return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectedItemProperty(); });
    }
    inline auto ListPickerFlyout::SelectedValueProperty()
    {
        return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectedValueProperty(); });
    }
    inline auto ListPickerFlyout::SelectedValuePathProperty()
    {
        return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectedValuePathProperty(); });
    }
    inline ListView::ListView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListView, Windows::UI::Xaml::Controls::IListViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ListViewBase::SelectionModeProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
    }
    inline auto ListViewBase::IsSwipeEnabledProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IsSwipeEnabledProperty(); });
    }
    inline auto ListViewBase::CanDragItemsProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.CanDragItemsProperty(); });
    }
    inline auto ListViewBase::CanReorderItemsProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.CanReorderItemsProperty(); });
    }
    inline auto ListViewBase::IsItemClickEnabledProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IsItemClickEnabledProperty(); });
    }
    inline auto ListViewBase::DataFetchSizeProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.DataFetchSizeProperty(); });
    }
    inline auto ListViewBase::IncrementalLoadingThresholdProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IncrementalLoadingThresholdProperty(); });
    }
    inline auto ListViewBase::IncrementalLoadingTriggerProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IncrementalLoadingTriggerProperty(); });
    }
    inline auto ListViewBase::SemanticZoomOwnerProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.SemanticZoomOwnerProperty(); });
    }
    inline auto ListViewBase::IsActiveViewProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IsActiveViewProperty(); });
    }
    inline auto ListViewBase::IsZoomedInViewProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IsZoomedInViewProperty(); });
    }
    inline auto ListViewBase::HeaderProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto ListViewBase::HeaderTemplateProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto ListViewBase::HeaderTransitionsProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.HeaderTransitionsProperty(); });
    }
    inline auto ListViewBase::ShowsScrollingPlaceholdersProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>([&](auto&& f) { return f.ShowsScrollingPlaceholdersProperty(); });
    }
    inline auto ListViewBase::FooterProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>([&](auto&& f) { return f.FooterProperty(); });
    }
    inline auto ListViewBase::FooterTemplateProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>([&](auto&& f) { return f.FooterTemplateProperty(); });
    }
    inline auto ListViewBase::FooterTransitionsProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>([&](auto&& f) { return f.FooterTransitionsProperty(); });
    }
    inline auto ListViewBase::ReorderModeProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics3>([&](auto&& f) { return f.ReorderModeProperty(); });
    }
    inline auto ListViewBase::IsMultiSelectCheckBoxEnabledProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics4>([&](auto&& f) { return f.IsMultiSelectCheckBoxEnabledProperty(); });
    }
    inline auto ListViewBase::SingleSelectionFollowsFocusProperty()
    {
        return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics5>([&](auto&& f) { return f.SingleSelectionFollowsFocusProperty(); });
    }
    inline ListViewHeaderItem::ListViewHeaderItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListViewHeaderItem, Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ListViewItem::ListViewItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListViewItem, Windows::UI::Xaml::Controls::IListViewItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ListViewPersistenceHelper::GetRelativeScrollPosition(Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const& itemToKeyHandler)
    {
        return impl::call_factory<ListViewPersistenceHelper, Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>([&](auto&& f) { return f.GetRelativeScrollPosition(listViewBase, itemToKeyHandler); });
    }
    inline auto ListViewPersistenceHelper::SetRelativeScrollPositionAsync(Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, param::hstring const& relativeScrollPosition, Windows::UI::Xaml::Controls::ListViewKeyToItemHandler const& keyToItemHandler)
    {
        return impl::call_factory<ListViewPersistenceHelper, Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>([&](auto&& f) { return f.SetRelativeScrollPositionAsync(listViewBase, relativeScrollPosition, keyToItemHandler); });
    }
    inline MediaElement::MediaElement() :
        MediaElement(impl::call_factory<MediaElement>([](auto&& f) { return f.template ActivateInstance<MediaElement>(); }))
    {
    }
    inline auto MediaElement::PosterSourceProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.PosterSourceProperty(); });
    }
    inline auto MediaElement::SourceProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.SourceProperty(); });
    }
    inline auto MediaElement::IsMutedProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.IsMutedProperty(); });
    }
    inline auto MediaElement::IsAudioOnlyProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.IsAudioOnlyProperty(); });
    }
    inline auto MediaElement::AutoPlayProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AutoPlayProperty(); });
    }
    inline auto MediaElement::VolumeProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.VolumeProperty(); });
    }
    inline auto MediaElement::BalanceProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.BalanceProperty(); });
    }
    inline auto MediaElement::NaturalVideoHeightProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.NaturalVideoHeightProperty(); });
    }
    inline auto MediaElement::NaturalVideoWidthProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.NaturalVideoWidthProperty(); });
    }
    inline auto MediaElement::NaturalDurationProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.NaturalDurationProperty(); });
    }
    inline auto MediaElement::PositionProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.PositionProperty(); });
    }
    inline auto MediaElement::DownloadProgressProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.DownloadProgressProperty(); });
    }
    inline auto MediaElement::BufferingProgressProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.BufferingProgressProperty(); });
    }
    inline auto MediaElement::DownloadProgressOffsetProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.DownloadProgressOffsetProperty(); });
    }
    inline auto MediaElement::CurrentStateProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.CurrentStateProperty(); });
    }
    inline auto MediaElement::CanSeekProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.CanSeekProperty(); });
    }
    inline auto MediaElement::CanPauseProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.CanPauseProperty(); });
    }
    inline auto MediaElement::AudioStreamCountProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AudioStreamCountProperty(); });
    }
    inline auto MediaElement::AudioStreamIndexProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AudioStreamIndexProperty(); });
    }
    inline auto MediaElement::PlaybackRateProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.PlaybackRateProperty(); });
    }
    inline auto MediaElement::IsLoopingProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.IsLoopingProperty(); });
    }
    inline auto MediaElement::PlayToSourceProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.PlayToSourceProperty(); });
    }
    inline auto MediaElement::DefaultPlaybackRateProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.DefaultPlaybackRateProperty(); });
    }
    inline auto MediaElement::AspectRatioWidthProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AspectRatioWidthProperty(); });
    }
    inline auto MediaElement::AspectRatioHeightProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AspectRatioHeightProperty(); });
    }
    inline auto MediaElement::RealTimePlaybackProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.RealTimePlaybackProperty(); });
    }
    inline auto MediaElement::AudioCategoryProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AudioCategoryProperty(); });
    }
    inline auto MediaElement::AudioDeviceTypeProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AudioDeviceTypeProperty(); });
    }
    inline auto MediaElement::ProtectionManagerProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.ProtectionManagerProperty(); });
    }
    inline auto MediaElement::Stereo3DVideoPackingModeProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.Stereo3DVideoPackingModeProperty(); });
    }
    inline auto MediaElement::Stereo3DVideoRenderModeProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.Stereo3DVideoRenderModeProperty(); });
    }
    inline auto MediaElement::IsStereo3DVideoProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.IsStereo3DVideoProperty(); });
    }
    inline auto MediaElement::ActualStereo3DVideoPackingModeProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.ActualStereo3DVideoPackingModeProperty(); });
    }
    inline auto MediaElement::AreTransportControlsEnabledProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>([&](auto&& f) { return f.AreTransportControlsEnabledProperty(); });
    }
    inline auto MediaElement::StretchProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>([&](auto&& f) { return f.StretchProperty(); });
    }
    inline auto MediaElement::IsFullWindowProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>([&](auto&& f) { return f.IsFullWindowProperty(); });
    }
    inline auto MediaElement::PlayToPreferredSourceUriProperty()
    {
        return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>([&](auto&& f) { return f.PlayToPreferredSourceUriProperty(); });
    }
    inline MediaPlayerElement::MediaPlayerElement()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MediaPlayerElement::SourceProperty()
    {
        return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.SourceProperty(); });
    }
    inline auto MediaPlayerElement::AreTransportControlsEnabledProperty()
    {
        return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.AreTransportControlsEnabledProperty(); });
    }
    inline auto MediaPlayerElement::PosterSourceProperty()
    {
        return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.PosterSourceProperty(); });
    }
    inline auto MediaPlayerElement::StretchProperty()
    {
        return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.StretchProperty(); });
    }
    inline auto MediaPlayerElement::AutoPlayProperty()
    {
        return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.AutoPlayProperty(); });
    }
    inline auto MediaPlayerElement::IsFullWindowProperty()
    {
        return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.IsFullWindowProperty(); });
    }
    inline auto MediaPlayerElement::MediaPlayerProperty()
    {
        return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.MediaPlayerProperty(); });
    }
    inline MediaPlayerPresenter::MediaPlayerPresenter()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MediaPlayerPresenter::MediaPlayerProperty()
    {
        return impl::call_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>([&](auto&& f) { return f.MediaPlayerProperty(); });
    }
    inline auto MediaPlayerPresenter::StretchProperty()
    {
        return impl::call_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>([&](auto&& f) { return f.StretchProperty(); });
    }
    inline auto MediaPlayerPresenter::IsFullWindowProperty()
    {
        return impl::call_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>([&](auto&& f) { return f.IsFullWindowProperty(); });
    }
    inline MediaTransportControls::MediaTransportControls()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MediaTransportControls::IsFullWindowButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFullWindowButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsFullWindowEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFullWindowEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsZoomButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsZoomButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsZoomEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsZoomEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsFastForwardButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFastForwardButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsFastForwardEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFastForwardEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsFastRewindButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFastRewindButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsFastRewindEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFastRewindEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsStopButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsStopButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsStopEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsStopEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsVolumeButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsVolumeButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsVolumeEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsVolumeEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsPlaybackRateButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsPlaybackRateButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsPlaybackRateEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsPlaybackRateEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsSeekBarVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsSeekBarVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsSeekEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsSeekEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsCompactProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsCompactProperty(); });
    }
    inline auto MediaTransportControls::IsSkipForwardButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsSkipForwardButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsSkipForwardEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsSkipForwardEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsSkipBackwardButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsSkipBackwardButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsSkipBackwardEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsSkipBackwardEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsNextTrackButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsNextTrackButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsPreviousTrackButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsPreviousTrackButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::FastPlayFallbackBehaviourProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.FastPlayFallbackBehaviourProperty(); });
    }
    inline auto MediaTransportControls::ShowAndHideAutomaticallyProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>([&](auto&& f) { return f.ShowAndHideAutomaticallyProperty(); });
    }
    inline auto MediaTransportControls::IsRepeatEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>([&](auto&& f) { return f.IsRepeatEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsRepeatButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>([&](auto&& f) { return f.IsRepeatButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsCompactOverlayButtonVisibleProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>([&](auto&& f) { return f.IsCompactOverlayButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsCompactOverlayEnabledProperty()
    {
        return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>([&](auto&& f) { return f.IsCompactOverlayEnabledProperty(); });
    }
    inline auto MediaTransportControlsHelper::DropoutOrderProperty()
    {
        return impl::call_factory<MediaTransportControlsHelper, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>([&](auto&& f) { return f.DropoutOrderProperty(); });
    }
    inline auto MediaTransportControlsHelper::GetDropoutOrder(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<MediaTransportControlsHelper, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>([&](auto&& f) { return f.GetDropoutOrder(element); });
    }
    inline auto MediaTransportControlsHelper::SetDropoutOrder(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IReference<int32_t> const& value)
    {
        impl::call_factory<MediaTransportControlsHelper, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>([&](auto&& f) { return f.SetDropoutOrder(element, value); });
    }
    inline MenuBar::MenuBar()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuBar, Windows::UI::Xaml::Controls::IMenuBarFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuBar::ItemsProperty()
    {
        return impl::call_factory<MenuBar, Windows::UI::Xaml::Controls::IMenuBarStatics>([&](auto&& f) { return f.ItemsProperty(); });
    }
    inline MenuBarItem::MenuBarItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuBarItem, Windows::UI::Xaml::Controls::IMenuBarItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuBarItem::TitleProperty()
    {
        return impl::call_factory<MenuBarItem, Windows::UI::Xaml::Controls::IMenuBarItemStatics>([&](auto&& f) { return f.TitleProperty(); });
    }
    inline auto MenuBarItem::ItemsProperty()
    {
        return impl::call_factory<MenuBarItem, Windows::UI::Xaml::Controls::IMenuBarItemStatics>([&](auto&& f) { return f.ItemsProperty(); });
    }
    inline MenuBarItemFlyout::MenuBarItemFlyout()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuBarItemFlyout, Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline MenuFlyout::MenuFlyout()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyoutFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuFlyout::MenuFlyoutPresenterStyleProperty()
    {
        return impl::call_factory<MenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyoutStatics>([&](auto&& f) { return f.MenuFlyoutPresenterStyleProperty(); });
    }
    inline MenuFlyoutItem::MenuFlyoutItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuFlyoutItem::TextProperty()
    {
        return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>([&](auto&& f) { return f.TextProperty(); });
    }
    inline auto MenuFlyoutItem::CommandProperty()
    {
        return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>([&](auto&& f) { return f.CommandProperty(); });
    }
    inline auto MenuFlyoutItem::CommandParameterProperty()
    {
        return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>([&](auto&& f) { return f.CommandParameterProperty(); });
    }
    inline auto MenuFlyoutItem::IconProperty()
    {
        return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>([&](auto&& f) { return f.IconProperty(); });
    }
    inline auto MenuFlyoutItem::KeyboardAcceleratorTextOverrideProperty()
    {
        return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3>([&](auto&& f) { return f.KeyboardAcceleratorTextOverrideProperty(); });
    }
    inline MenuFlyoutPresenter::MenuFlyoutPresenter()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuFlyoutPresenter, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuFlyoutPresenter::IsDefaultShadowEnabledProperty()
    {
        return impl::call_factory<MenuFlyoutPresenter, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3>([&](auto&& f) { return f.IsDefaultShadowEnabledProperty(); });
    }
    inline MenuFlyoutSeparator::MenuFlyoutSeparator()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuFlyoutSeparator, Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline MenuFlyoutSubItem::MenuFlyoutSubItem() :
        MenuFlyoutSubItem(impl::call_factory<MenuFlyoutSubItem>([](auto&& f) { return f.template ActivateInstance<MenuFlyoutSubItem>(); }))
    {
    }
    inline auto MenuFlyoutSubItem::TextProperty()
    {
        return impl::call_factory<MenuFlyoutSubItem, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>([&](auto&& f) { return f.TextProperty(); });
    }
    inline auto MenuFlyoutSubItem::IconProperty()
    {
        return impl::call_factory<MenuFlyoutSubItem, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2>([&](auto&& f) { return f.IconProperty(); });
    }
    inline NavigationView::NavigationView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto NavigationView::IsPaneOpenProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.IsPaneOpenProperty(); });
    }
    inline auto NavigationView::CompactModeThresholdWidthProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.CompactModeThresholdWidthProperty(); });
    }
    inline auto NavigationView::ExpandedModeThresholdWidthProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.ExpandedModeThresholdWidthProperty(); });
    }
    inline auto NavigationView::PaneFooterProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.PaneFooterProperty(); });
    }
    inline auto NavigationView::HeaderProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto NavigationView::HeaderTemplateProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto NavigationView::DisplayModeProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.DisplayModeProperty(); });
    }
    inline auto NavigationView::IsSettingsVisibleProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.IsSettingsVisibleProperty(); });
    }
    inline auto NavigationView::IsPaneToggleButtonVisibleProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.IsPaneToggleButtonVisibleProperty(); });
    }
    inline auto NavigationView::AlwaysShowHeaderProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.AlwaysShowHeaderProperty(); });
    }
    inline auto NavigationView::CompactPaneLengthProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.CompactPaneLengthProperty(); });
    }
    inline auto NavigationView::OpenPaneLengthProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.OpenPaneLengthProperty(); });
    }
    inline auto NavigationView::PaneToggleButtonStyleProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.PaneToggleButtonStyleProperty(); });
    }
    inline auto NavigationView::MenuItemsProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemsProperty(); });
    }
    inline auto NavigationView::MenuItemsSourceProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemsSourceProperty(); });
    }
    inline auto NavigationView::SelectedItemProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.SelectedItemProperty(); });
    }
    inline auto NavigationView::SettingsItemProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.SettingsItemProperty(); });
    }
    inline auto NavigationView::AutoSuggestBoxProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.AutoSuggestBoxProperty(); });
    }
    inline auto NavigationView::MenuItemTemplateProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemTemplateProperty(); });
    }
    inline auto NavigationView::MenuItemTemplateSelectorProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemTemplateSelectorProperty(); });
    }
    inline auto NavigationView::MenuItemContainerStyleProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemContainerStyleProperty(); });
    }
    inline auto NavigationView::MenuItemContainerStyleSelectorProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemContainerStyleSelectorProperty(); });
    }
    inline auto NavigationView::IsBackButtonVisibleProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>([&](auto&& f) { return f.IsBackButtonVisibleProperty(); });
    }
    inline auto NavigationView::IsBackEnabledProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>([&](auto&& f) { return f.IsBackEnabledProperty(); });
    }
    inline auto NavigationView::PaneTitleProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>([&](auto&& f) { return f.PaneTitleProperty(); });
    }
    inline auto NavigationView::PaneDisplayModeProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.PaneDisplayModeProperty(); });
    }
    inline auto NavigationView::PaneHeaderProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.PaneHeaderProperty(); });
    }
    inline auto NavigationView::PaneCustomContentProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.PaneCustomContentProperty(); });
    }
    inline auto NavigationView::ContentOverlayProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.ContentOverlayProperty(); });
    }
    inline auto NavigationView::IsPaneVisibleProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.IsPaneVisibleProperty(); });
    }
    inline auto NavigationView::SelectionFollowsFocusProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.SelectionFollowsFocusProperty(); });
    }
    inline auto NavigationView::TemplateSettingsProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.TemplateSettingsProperty(); });
    }
    inline auto NavigationView::ShoulderNavigationEnabledProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.ShoulderNavigationEnabledProperty(); });
    }
    inline auto NavigationView::OverflowLabelModeProperty()
    {
        return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.OverflowLabelModeProperty(); });
    }
    inline NavigationViewItem::NavigationViewItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto NavigationViewItem::IconProperty()
    {
        return impl::call_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemStatics>([&](auto&& f) { return f.IconProperty(); });
    }
    inline auto NavigationViewItem::CompactPaneLengthProperty()
    {
        return impl::call_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemStatics>([&](auto&& f) { return f.CompactPaneLengthProperty(); });
    }
    inline auto NavigationViewItem::SelectsOnInvokedProperty()
    {
        return impl::call_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemStatics2>([&](auto&& f) { return f.SelectsOnInvokedProperty(); });
    }
    inline NavigationViewItemHeader::NavigationViewItemHeader()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewItemHeader, Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline NavigationViewItemInvokedEventArgs::NavigationViewItemInvokedEventArgs() :
        NavigationViewItemInvokedEventArgs(impl::call_factory<NavigationViewItemInvokedEventArgs>([](auto&& f) { return f.template ActivateInstance<NavigationViewItemInvokedEventArgs>(); }))
    {
    }
    inline NavigationViewItemSeparator::NavigationViewItemSeparator()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewItemSeparator, Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline NavigationViewList::NavigationViewList()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewList, Windows::UI::Xaml::Controls::INavigationViewListFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline NavigationViewTemplateSettings::NavigationViewTemplateSettings()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto NavigationViewTemplateSettings::TopPaddingProperty()
    {
        return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.TopPaddingProperty(); });
    }
    inline auto NavigationViewTemplateSettings::OverflowButtonVisibilityProperty()
    {
        return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.OverflowButtonVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::PaneToggleButtonVisibilityProperty()
    {
        return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.PaneToggleButtonVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::BackButtonVisibilityProperty()
    {
        return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.BackButtonVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::TopPaneVisibilityProperty()
    {
        return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.TopPaneVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::LeftPaneVisibilityProperty()
    {
        return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.LeftPaneVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::SingleSelectionFollowsFocusProperty()
    {
        return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.SingleSelectionFollowsFocusProperty(); });
    }
    inline Page::Page()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Page, Windows::UI::Xaml::Controls::IPageFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Page::FrameProperty()
    {
        return impl::call_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>([&](auto&& f) { return f.FrameProperty(); });
    }
    inline auto Page::TopAppBarProperty()
    {
        return impl::call_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>([&](auto&& f) { return f.TopAppBarProperty(); });
    }
    inline auto Page::BottomAppBarProperty()
    {
        return impl::call_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>([&](auto&& f) { return f.BottomAppBarProperty(); });
    }
    inline auto Panel::BackgroundProperty()
    {
        return impl::call_factory<Panel, Windows::UI::Xaml::Controls::IPanelStatics>([&](auto&& f) { return f.BackgroundProperty(); });
    }
    inline auto Panel::IsItemsHostProperty()
    {
        return impl::call_factory<Panel, Windows::UI::Xaml::Controls::IPanelStatics>([&](auto&& f) { return f.IsItemsHostProperty(); });
    }
    inline auto Panel::ChildrenTransitionsProperty()
    {
        return impl::call_factory<Panel, Windows::UI::Xaml::Controls::IPanelStatics>([&](auto&& f) { return f.ChildrenTransitionsProperty(); });
    }
    inline ParallaxView::ParallaxView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ParallaxView::ChildProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.ChildProperty(); });
    }
    inline auto ParallaxView::HorizontalSourceEndOffsetProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.HorizontalSourceEndOffsetProperty(); });
    }
    inline auto ParallaxView::HorizontalSourceOffsetKindProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.HorizontalSourceOffsetKindProperty(); });
    }
    inline auto ParallaxView::HorizontalSourceStartOffsetProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.HorizontalSourceStartOffsetProperty(); });
    }
    inline auto ParallaxView::MaxHorizontalShiftRatioProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.MaxHorizontalShiftRatioProperty(); });
    }
    inline auto ParallaxView::HorizontalShiftProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.HorizontalShiftProperty(); });
    }
    inline auto ParallaxView::IsHorizontalShiftClampedProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.IsHorizontalShiftClampedProperty(); });
    }
    inline auto ParallaxView::IsVerticalShiftClampedProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.IsVerticalShiftClampedProperty(); });
    }
    inline auto ParallaxView::SourceProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.SourceProperty(); });
    }
    inline auto ParallaxView::VerticalSourceEndOffsetProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.VerticalSourceEndOffsetProperty(); });
    }
    inline auto ParallaxView::VerticalSourceOffsetKindProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.VerticalSourceOffsetKindProperty(); });
    }
    inline auto ParallaxView::VerticalSourceStartOffsetProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.VerticalSourceStartOffsetProperty(); });
    }
    inline auto ParallaxView::MaxVerticalShiftRatioProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.MaxVerticalShiftRatioProperty(); });
    }
    inline auto ParallaxView::VerticalShiftProperty()
    {
        return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.VerticalShiftProperty(); });
    }
    inline PasswordBox::PasswordBox() :
        PasswordBox(impl::call_factory<PasswordBox>([](auto&& f) { return f.template ActivateInstance<PasswordBox>(); }))
    {
    }
    inline auto PasswordBox::PasswordProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>([&](auto&& f) { return f.PasswordProperty(); });
    }
    inline auto PasswordBox::PasswordCharProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>([&](auto&& f) { return f.PasswordCharProperty(); });
    }
    inline auto PasswordBox::IsPasswordRevealButtonEnabledProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>([&](auto&& f) { return f.IsPasswordRevealButtonEnabledProperty(); });
    }
    inline auto PasswordBox::MaxLengthProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>([&](auto&& f) { return f.MaxLengthProperty(); });
    }
    inline auto PasswordBox::HeaderProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto PasswordBox::HeaderTemplateProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto PasswordBox::PlaceholderTextProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto PasswordBox::SelectionHighlightColorProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto PasswordBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
    }
    inline auto PasswordBox::PasswordRevealModeProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>([&](auto&& f) { return f.PasswordRevealModeProperty(); });
    }
    inline auto PasswordBox::TextReadingOrderProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>([&](auto&& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto PasswordBox::InputScopeProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>([&](auto&& f) { return f.InputScopeProperty(); });
    }
    inline auto PasswordBox::CanPasteClipboardContentProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics5>([&](auto&& f) { return f.CanPasteClipboardContentProperty(); });
    }
    inline auto PasswordBox::SelectionFlyoutProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics5>([&](auto&& f) { return f.SelectionFlyoutProperty(); });
    }
    inline auto PasswordBox::DescriptionProperty()
    {
        return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics5>([&](auto&& f) { return f.DescriptionProperty(); });
    }
    inline PathIcon::PathIcon()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<PathIcon, Windows::UI::Xaml::Controls::IPathIconFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto PathIcon::DataProperty()
    {
        return impl::call_factory<PathIcon, Windows::UI::Xaml::Controls::IPathIconStatics>([&](auto&& f) { return f.DataProperty(); });
    }
    inline PathIconSource::PathIconSource()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<PathIconSource, Windows::UI::Xaml::Controls::IPathIconSourceFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto PathIconSource::DataProperty()
    {
        return impl::call_factory<PathIconSource, Windows::UI::Xaml::Controls::IPathIconSourceStatics>([&](auto&& f) { return f.DataProperty(); });
    }
    inline PersonPicture::PersonPicture()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto PersonPicture::BadgeNumberProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.BadgeNumberProperty(); });
    }
    inline auto PersonPicture::BadgeGlyphProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.BadgeGlyphProperty(); });
    }
    inline auto PersonPicture::BadgeImageSourceProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.BadgeImageSourceProperty(); });
    }
    inline auto PersonPicture::BadgeTextProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.BadgeTextProperty(); });
    }
    inline auto PersonPicture::IsGroupProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.IsGroupProperty(); });
    }
    inline auto PersonPicture::ContactProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.ContactProperty(); });
    }
    inline auto PersonPicture::DisplayNameProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.DisplayNameProperty(); });
    }
    inline auto PersonPicture::InitialsProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.InitialsProperty(); });
    }
    inline auto PersonPicture::PreferSmallImageProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.PreferSmallImageProperty(); });
    }
    inline auto PersonPicture::ProfilePictureProperty()
    {
        return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.ProfilePictureProperty(); });
    }
    inline PickerConfirmedEventArgs::PickerConfirmedEventArgs() :
        PickerConfirmedEventArgs(impl::call_factory<PickerConfirmedEventArgs>([](auto&& f) { return f.template ActivateInstance<PickerConfirmedEventArgs>(); }))
    {
    }
    inline PickerFlyout::PickerFlyout() :
        PickerFlyout(impl::call_factory<PickerFlyout>([](auto&& f) { return f.template ActivateInstance<PickerFlyout>(); }))
    {
    }
    inline auto PickerFlyout::ContentProperty()
    {
        return impl::call_factory<PickerFlyout, Windows::UI::Xaml::Controls::IPickerFlyoutStatics>([&](auto&& f) { return f.ContentProperty(); });
    }
    inline auto PickerFlyout::ConfirmationButtonsVisibleProperty()
    {
        return impl::call_factory<PickerFlyout, Windows::UI::Xaml::Controls::IPickerFlyoutStatics>([&](auto&& f) { return f.ConfirmationButtonsVisibleProperty(); });
    }
    inline Pivot::Pivot()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Pivot::TitleProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.TitleProperty(); });
    }
    inline auto Pivot::TitleTemplateProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.TitleTemplateProperty(); });
    }
    inline auto Pivot::HeaderTemplateProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto Pivot::SelectedIndexProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.SelectedIndexProperty(); });
    }
    inline auto Pivot::SelectedItemProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.SelectedItemProperty(); });
    }
    inline auto Pivot::IsLockedProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.IsLockedProperty(); });
    }
    inline auto Pivot::SlideInAnimationGroupProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.SlideInAnimationGroupProperty(); });
    }
    inline auto Pivot::GetSlideInAnimationGroup(Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.GetSlideInAnimationGroup(element); });
    }
    inline auto Pivot::SetSlideInAnimationGroup(Windows::UI::Xaml::FrameworkElement const& element, Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const& value)
    {
        impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.SetSlideInAnimationGroup(element, value); });
    }
    inline auto Pivot::LeftHeaderProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>([&](auto&& f) { return f.LeftHeaderProperty(); });
    }
    inline auto Pivot::LeftHeaderTemplateProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>([&](auto&& f) { return f.LeftHeaderTemplateProperty(); });
    }
    inline auto Pivot::RightHeaderProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>([&](auto&& f) { return f.RightHeaderProperty(); });
    }
    inline auto Pivot::RightHeaderTemplateProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>([&](auto&& f) { return f.RightHeaderTemplateProperty(); });
    }
    inline auto Pivot::HeaderFocusVisualPlacementProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics3>([&](auto&& f) { return f.HeaderFocusVisualPlacementProperty(); });
    }
    inline auto Pivot::IsHeaderItemsCarouselEnabledProperty()
    {
        return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics3>([&](auto&& f) { return f.IsHeaderItemsCarouselEnabledProperty(); });
    }
    inline PivotItem::PivotItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<PivotItem, Windows::UI::Xaml::Controls::IPivotItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto PivotItem::HeaderProperty()
    {
        return impl::call_factory<PivotItem, Windows::UI::Xaml::Controls::IPivotItemStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline PivotItemEventArgs::PivotItemEventArgs() :
        PivotItemEventArgs(impl::call_factory<PivotItemEventArgs>([](auto&& f) { return f.template ActivateInstance<PivotItemEventArgs>(); }))
    {
    }
    inline ProgressBar::ProgressBar()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ProgressBar::IsIndeterminateProperty()
    {
        return impl::call_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarStatics>([&](auto&& f) { return f.IsIndeterminateProperty(); });
    }
    inline auto ProgressBar::ShowErrorProperty()
    {
        return impl::call_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarStatics>([&](auto&& f) { return f.ShowErrorProperty(); });
    }
    inline auto ProgressBar::ShowPausedProperty()
    {
        return impl::call_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarStatics>([&](auto&& f) { return f.ShowPausedProperty(); });
    }
    inline ProgressRing::ProgressRing() :
        ProgressRing(impl::call_factory<ProgressRing>([](auto&& f) { return f.template ActivateInstance<ProgressRing>(); }))
    {
    }
    inline auto ProgressRing::IsActiveProperty()
    {
        return impl::call_factory<ProgressRing, Windows::UI::Xaml::Controls::IProgressRingStatics>([&](auto&& f) { return f.IsActiveProperty(); });
    }
    inline RadioButton::RadioButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RadioButton, Windows::UI::Xaml::Controls::IRadioButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RadioButton::GroupNameProperty()
    {
        return impl::call_factory<RadioButton, Windows::UI::Xaml::Controls::IRadioButtonStatics>([&](auto&& f) { return f.GroupNameProperty(); });
    }
    inline RatingControl::RatingControl()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RatingControl::CaptionProperty()
    {
        return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.CaptionProperty(); });
    }
    inline auto RatingControl::InitialSetValueProperty()
    {
        return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.InitialSetValueProperty(); });
    }
    inline auto RatingControl::IsClearEnabledProperty()
    {
        return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.IsClearEnabledProperty(); });
    }
    inline auto RatingControl::IsReadOnlyProperty()
    {
        return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.IsReadOnlyProperty(); });
    }
    inline auto RatingControl::MaxRatingProperty()
    {
        return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.MaxRatingProperty(); });
    }
    inline auto RatingControl::PlaceholderValueProperty()
    {
        return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.PlaceholderValueProperty(); });
    }
    inline auto RatingControl::ItemInfoProperty()
    {
        return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.ItemInfoProperty(); });
    }
    inline auto RatingControl::ValueProperty()
    {
        return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.ValueProperty(); });
    }
    inline RatingItemFontInfo::RatingItemFontInfo()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RatingItemFontInfo::DisabledGlyphProperty()
    {
        return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.DisabledGlyphProperty(); });
    }
    inline auto RatingItemFontInfo::GlyphProperty()
    {
        return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.GlyphProperty(); });
    }
    inline auto RatingItemFontInfo::PlaceholderGlyphProperty()
    {
        return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.PlaceholderGlyphProperty(); });
    }
    inline auto RatingItemFontInfo::PointerOverGlyphProperty()
    {
        return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.PointerOverGlyphProperty(); });
    }
    inline auto RatingItemFontInfo::PointerOverPlaceholderGlyphProperty()
    {
        return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.PointerOverPlaceholderGlyphProperty(); });
    }
    inline auto RatingItemFontInfo::UnsetGlyphProperty()
    {
        return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.UnsetGlyphProperty(); });
    }
    inline RatingItemImageInfo::RatingItemImageInfo()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RatingItemImageInfo::DisabledImageProperty()
    {
        return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.DisabledImageProperty(); });
    }
    inline auto RatingItemImageInfo::ImageProperty()
    {
        return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.ImageProperty(); });
    }
    inline auto RatingItemImageInfo::PlaceholderImageProperty()
    {
        return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.PlaceholderImageProperty(); });
    }
    inline auto RatingItemImageInfo::PointerOverImageProperty()
    {
        return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.PointerOverImageProperty(); });
    }
    inline auto RatingItemImageInfo::PointerOverPlaceholderImageProperty()
    {
        return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.PointerOverPlaceholderImageProperty(); });
    }
    inline auto RatingItemImageInfo::UnsetImageProperty()
    {
        return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.UnsetImageProperty(); });
    }
    inline RatingItemInfo::RatingItemInfo()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RatingItemInfo, Windows::UI::Xaml::Controls::IRatingItemInfoFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline RefreshContainer::RefreshContainer()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RefreshContainer::VisualizerProperty()
    {
        return impl::call_factory<RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerStatics>([&](auto&& f) { return f.VisualizerProperty(); });
    }
    inline auto RefreshContainer::PullDirectionProperty()
    {
        return impl::call_factory<RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerStatics>([&](auto&& f) { return f.PullDirectionProperty(); });
    }
    inline RefreshVisualizer::RefreshVisualizer()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RefreshVisualizer::InfoProviderProperty()
    {
        return impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>([&](auto&& f) { return f.InfoProviderProperty(); });
    }
    inline auto RefreshVisualizer::OrientationProperty()
    {
        return impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto RefreshVisualizer::ContentProperty()
    {
        return impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>([&](auto&& f) { return f.ContentProperty(); });
    }
    inline auto RefreshVisualizer::StateProperty()
    {
        return impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>([&](auto&& f) { return f.StateProperty(); });
    }
    inline RelativePanel::RelativePanel()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RelativePanel::LeftOfProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.LeftOfProperty(); });
    }
    inline auto RelativePanel::GetLeftOf(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetLeftOf(element); });
    }
    inline auto RelativePanel::SetLeftOf(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetLeftOf(element, value); });
    }
    inline auto RelativePanel::AboveProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AboveProperty(); });
    }
    inline auto RelativePanel::GetAbove(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAbove(element); });
    }
    inline auto RelativePanel::SetAbove(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAbove(element, value); });
    }
    inline auto RelativePanel::RightOfProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.RightOfProperty(); });
    }
    inline auto RelativePanel::GetRightOf(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetRightOf(element); });
    }
    inline auto RelativePanel::SetRightOf(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetRightOf(element, value); });
    }
    inline auto RelativePanel::BelowProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.BelowProperty(); });
    }
    inline auto RelativePanel::GetBelow(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetBelow(element); });
    }
    inline auto RelativePanel::SetBelow(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetBelow(element, value); });
    }
    inline auto RelativePanel::AlignHorizontalCenterWithProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignHorizontalCenterWithProperty(); });
    }
    inline auto RelativePanel::GetAlignHorizontalCenterWith(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignHorizontalCenterWith(element); });
    }
    inline auto RelativePanel::SetAlignHorizontalCenterWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignHorizontalCenterWith(element, value); });
    }
    inline auto RelativePanel::AlignVerticalCenterWithProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignVerticalCenterWithProperty(); });
    }
    inline auto RelativePanel::GetAlignVerticalCenterWith(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignVerticalCenterWith(element); });
    }
    inline auto RelativePanel::SetAlignVerticalCenterWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignVerticalCenterWith(element, value); });
    }
    inline auto RelativePanel::AlignLeftWithProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignLeftWithProperty(); });
    }
    inline auto RelativePanel::GetAlignLeftWith(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignLeftWith(element); });
    }
    inline auto RelativePanel::SetAlignLeftWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignLeftWith(element, value); });
    }
    inline auto RelativePanel::AlignTopWithProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignTopWithProperty(); });
    }
    inline auto RelativePanel::GetAlignTopWith(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignTopWith(element); });
    }
    inline auto RelativePanel::SetAlignTopWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignTopWith(element, value); });
    }
    inline auto RelativePanel::AlignRightWithProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignRightWithProperty(); });
    }
    inline auto RelativePanel::GetAlignRightWith(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignRightWith(element); });
    }
    inline auto RelativePanel::SetAlignRightWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignRightWith(element, value); });
    }
    inline auto RelativePanel::AlignBottomWithProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignBottomWithProperty(); });
    }
    inline auto RelativePanel::GetAlignBottomWith(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignBottomWith(element); });
    }
    inline auto RelativePanel::SetAlignBottomWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignBottomWith(element, value); });
    }
    inline auto RelativePanel::AlignLeftWithPanelProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignLeftWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignLeftWithPanel(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignLeftWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignLeftWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignLeftWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignTopWithPanelProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignTopWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignTopWithPanel(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignTopWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignTopWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignTopWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignRightWithPanelProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignRightWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignRightWithPanel(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignRightWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignRightWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignRightWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignBottomWithPanelProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignBottomWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignBottomWithPanel(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignBottomWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignBottomWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignBottomWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignHorizontalCenterWithPanelProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignHorizontalCenterWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignHorizontalCenterWithPanel(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignHorizontalCenterWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignHorizontalCenterWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignHorizontalCenterWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignVerticalCenterWithPanelProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignVerticalCenterWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignVerticalCenterWithPanel(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.GetAlignVerticalCenterWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignVerticalCenterWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.SetAlignVerticalCenterWithPanel(element, value); });
    }
    inline auto RelativePanel::BorderBrushProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.BorderBrushProperty(); });
    }
    inline auto RelativePanel::BorderThicknessProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.BorderThicknessProperty(); });
    }
    inline auto RelativePanel::CornerRadiusProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.CornerRadiusProperty(); });
    }
    inline auto RelativePanel::PaddingProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto RelativePanel::BackgroundSizingProperty()
    {
        return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics2>([&](auto&& f) { return f.BackgroundSizingProperty(); });
    }
    inline RichEditBox::RichEditBox()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RichEditBox::IsReadOnlyProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.IsReadOnlyProperty(); });
    }
    inline auto RichEditBox::AcceptsReturnProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.AcceptsReturnProperty(); });
    }
    inline auto RichEditBox::TextAlignmentProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.TextAlignmentProperty(); });
    }
    inline auto RichEditBox::TextWrappingProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.TextWrappingProperty(); });
    }
    inline auto RichEditBox::IsSpellCheckEnabledProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.IsSpellCheckEnabledProperty(); });
    }
    inline auto RichEditBox::IsTextPredictionEnabledProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.IsTextPredictionEnabledProperty(); });
    }
    inline auto RichEditBox::InputScopeProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.InputScopeProperty(); });
    }
    inline auto RichEditBox::HeaderProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto RichEditBox::HeaderTemplateProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto RichEditBox::PlaceholderTextProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto RichEditBox::SelectionHighlightColorProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto RichEditBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
    }
    inline auto RichEditBox::IsColorFontEnabledProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.IsColorFontEnabledProperty(); });
    }
    inline auto RichEditBox::DesiredCandidateWindowAlignmentProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics3>([&](auto&& f) { return f.DesiredCandidateWindowAlignmentProperty(); });
    }
    inline auto RichEditBox::TextReadingOrderProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics3>([&](auto&& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto RichEditBox::ClipboardCopyFormatProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics4>([&](auto&& f) { return f.ClipboardCopyFormatProperty(); });
    }
    inline auto RichEditBox::SelectionHighlightColorWhenNotFocusedProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics5>([&](auto&& f) { return f.SelectionHighlightColorWhenNotFocusedProperty(); });
    }
    inline auto RichEditBox::MaxLengthProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics5>([&](auto&& f) { return f.MaxLengthProperty(); });
    }
    inline auto RichEditBox::HorizontalTextAlignmentProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>([&](auto&& f) { return f.HorizontalTextAlignmentProperty(); });
    }
    inline auto RichEditBox::CharacterCasingProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>([&](auto&& f) { return f.CharacterCasingProperty(); });
    }
    inline auto RichEditBox::DisabledFormattingAcceleratorsProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>([&](auto&& f) { return f.DisabledFormattingAcceleratorsProperty(); });
    }
    inline auto RichEditBox::ContentLinkForegroundColorProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.ContentLinkForegroundColorProperty(); });
    }
    inline auto RichEditBox::ContentLinkBackgroundColorProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.ContentLinkBackgroundColorProperty(); });
    }
    inline auto RichEditBox::ContentLinkProvidersProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.ContentLinkProvidersProperty(); });
    }
    inline auto RichEditBox::HandwritingViewProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.HandwritingViewProperty(); });
    }
    inline auto RichEditBox::IsHandwritingViewEnabledProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.IsHandwritingViewEnabledProperty(); });
    }
    inline auto RichEditBox::SelectionFlyoutProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics8>([&](auto&& f) { return f.SelectionFlyoutProperty(); });
    }
    inline auto RichEditBox::ProofingMenuFlyoutProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics8>([&](auto&& f) { return f.ProofingMenuFlyoutProperty(); });
    }
    inline auto RichEditBox::DescriptionProperty()
    {
        return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics8>([&](auto&& f) { return f.DescriptionProperty(); });
    }
    inline RichTextBlock::RichTextBlock() :
        RichTextBlock(impl::call_factory<RichTextBlock>([](auto&& f) { return f.template ActivateInstance<RichTextBlock>(); }))
    {
    }
    inline auto RichTextBlock::FontSizeProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontSizeProperty(); });
    }
    inline auto RichTextBlock::FontFamilyProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
    }
    inline auto RichTextBlock::FontWeightProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontWeightProperty(); });
    }
    inline auto RichTextBlock::FontStyleProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontStyleProperty(); });
    }
    inline auto RichTextBlock::FontStretchProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontStretchProperty(); });
    }
    inline auto RichTextBlock::ForegroundProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.ForegroundProperty(); });
    }
    inline auto RichTextBlock::TextWrappingProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.TextWrappingProperty(); });
    }
    inline auto RichTextBlock::TextTrimmingProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.TextTrimmingProperty(); });
    }
    inline auto RichTextBlock::TextAlignmentProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.TextAlignmentProperty(); });
    }
    inline auto RichTextBlock::PaddingProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto RichTextBlock::LineHeightProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.LineHeightProperty(); });
    }
    inline auto RichTextBlock::LineStackingStrategyProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.LineStackingStrategyProperty(); });
    }
    inline auto RichTextBlock::CharacterSpacingProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.CharacterSpacingProperty(); });
    }
    inline auto RichTextBlock::OverflowContentTargetProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.OverflowContentTargetProperty(); });
    }
    inline auto RichTextBlock::IsTextSelectionEnabledProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.IsTextSelectionEnabledProperty(); });
    }
    inline auto RichTextBlock::HasOverflowContentProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.HasOverflowContentProperty(); });
    }
    inline auto RichTextBlock::SelectedTextProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.SelectedTextProperty(); });
    }
    inline auto RichTextBlock::TextIndentProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.TextIndentProperty(); });
    }
    inline auto RichTextBlock::MaxLinesProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.MaxLinesProperty(); });
    }
    inline auto RichTextBlock::TextLineBoundsProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.TextLineBoundsProperty(); });
    }
    inline auto RichTextBlock::SelectionHighlightColorProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto RichTextBlock::OpticalMarginAlignmentProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.OpticalMarginAlignmentProperty(); });
    }
    inline auto RichTextBlock::IsColorFontEnabledProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.IsColorFontEnabledProperty(); });
    }
    inline auto RichTextBlock::TextReadingOrderProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto RichTextBlock::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics3>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto RichTextBlock::TextDecorationsProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics4>([&](auto&& f) { return f.TextDecorationsProperty(); });
    }
    inline auto RichTextBlock::IsTextTrimmedProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics5>([&](auto&& f) { return f.IsTextTrimmedProperty(); });
    }
    inline auto RichTextBlock::HorizontalTextAlignmentProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics5>([&](auto&& f) { return f.HorizontalTextAlignmentProperty(); });
    }
    inline auto RichTextBlock::SelectionFlyoutProperty()
    {
        return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics6>([&](auto&& f) { return f.SelectionFlyoutProperty(); });
    }
    inline RichTextBlockOverflow::RichTextBlockOverflow() :
        RichTextBlockOverflow(impl::call_factory<RichTextBlockOverflow>([](auto&& f) { return f.template ActivateInstance<RichTextBlockOverflow>(); }))
    {
    }
    inline auto RichTextBlockOverflow::OverflowContentTargetProperty()
    {
        return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>([&](auto&& f) { return f.OverflowContentTargetProperty(); });
    }
    inline auto RichTextBlockOverflow::PaddingProperty()
    {
        return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto RichTextBlockOverflow::HasOverflowContentProperty()
    {
        return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>([&](auto&& f) { return f.HasOverflowContentProperty(); });
    }
    inline auto RichTextBlockOverflow::MaxLinesProperty()
    {
        return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>([&](auto&& f) { return f.MaxLinesProperty(); });
    }
    inline auto RichTextBlockOverflow::IsTextTrimmedProperty()
    {
        return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3>([&](auto&& f) { return f.IsTextTrimmedProperty(); });
    }
    inline RowDefinition::RowDefinition() :
        RowDefinition(impl::call_factory<RowDefinition>([](auto&& f) { return f.template ActivateInstance<RowDefinition>(); }))
    {
    }
    inline auto RowDefinition::HeightProperty()
    {
        return impl::call_factory<RowDefinition, Windows::UI::Xaml::Controls::IRowDefinitionStatics>([&](auto&& f) { return f.HeightProperty(); });
    }
    inline auto RowDefinition::MaxHeightProperty()
    {
        return impl::call_factory<RowDefinition, Windows::UI::Xaml::Controls::IRowDefinitionStatics>([&](auto&& f) { return f.MaxHeightProperty(); });
    }
    inline auto RowDefinition::MinHeightProperty()
    {
        return impl::call_factory<RowDefinition, Windows::UI::Xaml::Controls::IRowDefinitionStatics>([&](auto&& f) { return f.MinHeightProperty(); });
    }
    inline ScrollContentPresenter::ScrollContentPresenter() :
        ScrollContentPresenter(impl::call_factory<ScrollContentPresenter>([](auto&& f) { return f.template ActivateInstance<ScrollContentPresenter>(); }))
    {
    }
    inline auto ScrollContentPresenter::CanContentRenderOutsideBoundsProperty()
    {
        return impl::call_factory<ScrollContentPresenter, Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>([&](auto&& f) { return f.CanContentRenderOutsideBoundsProperty(); });
    }
    inline auto ScrollContentPresenter::SizesContentToTemplatedParentProperty()
    {
        return impl::call_factory<ScrollContentPresenter, Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>([&](auto&& f) { return f.SizesContentToTemplatedParentProperty(); });
    }
    inline ScrollViewer::ScrollViewer() :
        ScrollViewer(impl::call_factory<ScrollViewer>([](auto&& f) { return f.template ActivateInstance<ScrollViewer>(); }))
    {
    }
    inline auto ScrollViewer::HorizontalSnapPointsAlignmentProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalSnapPointsAlignmentProperty(); });
    }
    inline auto ScrollViewer::VerticalSnapPointsAlignmentProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalSnapPointsAlignmentProperty(); });
    }
    inline auto ScrollViewer::HorizontalSnapPointsTypeProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalSnapPointsTypeProperty(); });
    }
    inline auto ScrollViewer::VerticalSnapPointsTypeProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalSnapPointsTypeProperty(); });
    }
    inline auto ScrollViewer::ZoomSnapPointsTypeProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ZoomSnapPointsTypeProperty(); });
    }
    inline auto ScrollViewer::HorizontalOffsetProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalOffsetProperty(); });
    }
    inline auto ScrollViewer::ViewportWidthProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ViewportWidthProperty(); });
    }
    inline auto ScrollViewer::ScrollableWidthProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ScrollableWidthProperty(); });
    }
    inline auto ScrollViewer::ComputedHorizontalScrollBarVisibilityProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ComputedHorizontalScrollBarVisibilityProperty(); });
    }
    inline auto ScrollViewer::ExtentWidthProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ExtentWidthProperty(); });
    }
    inline auto ScrollViewer::VerticalOffsetProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalOffsetProperty(); });
    }
    inline auto ScrollViewer::ViewportHeightProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ViewportHeightProperty(); });
    }
    inline auto ScrollViewer::ScrollableHeightProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ScrollableHeightProperty(); });
    }
    inline auto ScrollViewer::ComputedVerticalScrollBarVisibilityProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ComputedVerticalScrollBarVisibilityProperty(); });
    }
    inline auto ScrollViewer::ExtentHeightProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ExtentHeightProperty(); });
    }
    inline auto ScrollViewer::MinZoomFactorProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.MinZoomFactorProperty(); });
    }
    inline auto ScrollViewer::MaxZoomFactorProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.MaxZoomFactorProperty(); });
    }
    inline auto ScrollViewer::ZoomFactorProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ZoomFactorProperty(); });
    }
    inline auto ScrollViewer::ZoomSnapPointsProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ZoomSnapPointsProperty(); });
    }
    inline auto ScrollViewer::HorizontalScrollBarVisibilityProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalScrollBarVisibilityProperty(); });
    }
    inline auto ScrollViewer::GetHorizontalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetHorizontalScrollBarVisibility(element); });
    }
    inline auto ScrollViewer::SetHorizontalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollBarVisibility const& horizontalScrollBarVisibility)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetHorizontalScrollBarVisibility(element, horizontalScrollBarVisibility); });
    }
    inline auto ScrollViewer::VerticalScrollBarVisibilityProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalScrollBarVisibilityProperty(); });
    }
    inline auto ScrollViewer::GetVerticalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetVerticalScrollBarVisibility(element); });
    }
    inline auto ScrollViewer::SetVerticalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollBarVisibility const& verticalScrollBarVisibility)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetVerticalScrollBarVisibility(element, verticalScrollBarVisibility); });
    }
    inline auto ScrollViewer::IsHorizontalRailEnabledProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsHorizontalRailEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsHorizontalRailEnabled(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetIsHorizontalRailEnabled(element); });
    }
    inline auto ScrollViewer::SetIsHorizontalRailEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalRailEnabled)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetIsHorizontalRailEnabled(element, isHorizontalRailEnabled); });
    }
    inline auto ScrollViewer::IsVerticalRailEnabledProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsVerticalRailEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsVerticalRailEnabled(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetIsVerticalRailEnabled(element); });
    }
    inline auto ScrollViewer::SetIsVerticalRailEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isVerticalRailEnabled)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetIsVerticalRailEnabled(element, isVerticalRailEnabled); });
    }
    inline auto ScrollViewer::IsHorizontalScrollChainingEnabledProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsHorizontalScrollChainingEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsHorizontalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetIsHorizontalScrollChainingEnabled(element); });
    }
    inline auto ScrollViewer::SetIsHorizontalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalScrollChainingEnabled)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetIsHorizontalScrollChainingEnabled(element, isHorizontalScrollChainingEnabled); });
    }
    inline auto ScrollViewer::IsVerticalScrollChainingEnabledProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsVerticalScrollChainingEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsVerticalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetIsVerticalScrollChainingEnabled(element); });
    }
    inline auto ScrollViewer::SetIsVerticalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isVerticalScrollChainingEnabled)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetIsVerticalScrollChainingEnabled(element, isVerticalScrollChainingEnabled); });
    }
    inline auto ScrollViewer::IsZoomChainingEnabledProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsZoomChainingEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsZoomChainingEnabled(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetIsZoomChainingEnabled(element); });
    }
    inline auto ScrollViewer::SetIsZoomChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isZoomChainingEnabled)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetIsZoomChainingEnabled(element, isZoomChainingEnabled); });
    }
    inline auto ScrollViewer::IsScrollInertiaEnabledProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsScrollInertiaEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsScrollInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetIsScrollInertiaEnabled(element); });
    }
    inline auto ScrollViewer::SetIsScrollInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isScrollInertiaEnabled)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetIsScrollInertiaEnabled(element, isScrollInertiaEnabled); });
    }
    inline auto ScrollViewer::IsZoomInertiaEnabledProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsZoomInertiaEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsZoomInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetIsZoomInertiaEnabled(element); });
    }
    inline auto ScrollViewer::SetIsZoomInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isZoomInertiaEnabled)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetIsZoomInertiaEnabled(element, isZoomInertiaEnabled); });
    }
    inline auto ScrollViewer::HorizontalScrollModeProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalScrollModeProperty(); });
    }
    inline auto ScrollViewer::GetHorizontalScrollMode(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetHorizontalScrollMode(element); });
    }
    inline auto ScrollViewer::SetHorizontalScrollMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollMode const& horizontalScrollMode)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetHorizontalScrollMode(element, horizontalScrollMode); });
    }
    inline auto ScrollViewer::VerticalScrollModeProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalScrollModeProperty(); });
    }
    inline auto ScrollViewer::GetVerticalScrollMode(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetVerticalScrollMode(element); });
    }
    inline auto ScrollViewer::SetVerticalScrollMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollMode const& verticalScrollMode)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetVerticalScrollMode(element, verticalScrollMode); });
    }
    inline auto ScrollViewer::ZoomModeProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ZoomModeProperty(); });
    }
    inline auto ScrollViewer::GetZoomMode(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetZoomMode(element); });
    }
    inline auto ScrollViewer::SetZoomMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ZoomMode const& zoomMode)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetZoomMode(element, zoomMode); });
    }
    inline auto ScrollViewer::IsDeferredScrollingEnabledProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsDeferredScrollingEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsDeferredScrollingEnabled(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetIsDeferredScrollingEnabled(element); });
    }
    inline auto ScrollViewer::SetIsDeferredScrollingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isDeferredScrollingEnabled)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetIsDeferredScrollingEnabled(element, isDeferredScrollingEnabled); });
    }
    inline auto ScrollViewer::BringIntoViewOnFocusChangeProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.BringIntoViewOnFocusChangeProperty(); });
    }
    inline auto ScrollViewer::GetBringIntoViewOnFocusChange(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.GetBringIntoViewOnFocusChange(element); });
    }
    inline auto ScrollViewer::SetBringIntoViewOnFocusChange(Windows::UI::Xaml::DependencyObject const& element, bool bringIntoViewOnFocusChange)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.SetBringIntoViewOnFocusChange(element, bringIntoViewOnFocusChange); });
    }
    inline auto ScrollViewer::TopLeftHeaderProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>([&](auto&& f) { return f.TopLeftHeaderProperty(); });
    }
    inline auto ScrollViewer::LeftHeaderProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>([&](auto&& f) { return f.LeftHeaderProperty(); });
    }
    inline auto ScrollViewer::TopHeaderProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>([&](auto&& f) { return f.TopHeaderProperty(); });
    }
    inline auto ScrollViewer::ReduceViewportForCoreInputViewOcclusionsProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.ReduceViewportForCoreInputViewOcclusionsProperty(); });
    }
    inline auto ScrollViewer::HorizontalAnchorRatioProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.HorizontalAnchorRatioProperty(); });
    }
    inline auto ScrollViewer::VerticalAnchorRatioProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.VerticalAnchorRatioProperty(); });
    }
    inline auto ScrollViewer::CanContentRenderOutsideBoundsProperty()
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.CanContentRenderOutsideBoundsProperty(); });
    }
    inline auto ScrollViewer::GetCanContentRenderOutsideBounds(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.GetCanContentRenderOutsideBounds(element); });
    }
    inline auto ScrollViewer::SetCanContentRenderOutsideBounds(Windows::UI::Xaml::DependencyObject const& element, bool canContentRenderOutsideBounds)
    {
        impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.SetCanContentRenderOutsideBounds(element, canContentRenderOutsideBounds); });
    }
    inline ScrollViewerViewChangedEventArgs::ScrollViewerViewChangedEventArgs() :
        ScrollViewerViewChangedEventArgs(impl::call_factory<ScrollViewerViewChangedEventArgs>([](auto&& f) { return f.template ActivateInstance<ScrollViewerViewChangedEventArgs>(); }))
    {
    }
    inline SearchBox::SearchBox()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SearchBox::SearchHistoryEnabledProperty()
    {
        return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.SearchHistoryEnabledProperty(); });
    }
    inline auto SearchBox::SearchHistoryContextProperty()
    {
        return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.SearchHistoryContextProperty(); });
    }
    inline auto SearchBox::PlaceholderTextProperty()
    {
        return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto SearchBox::QueryTextProperty()
    {
        return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.QueryTextProperty(); });
    }
    inline auto SearchBox::FocusOnKeyboardInputProperty()
    {
        return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.FocusOnKeyboardInputProperty(); });
    }
    inline auto SearchBox::ChooseSuggestionOnEnterProperty()
    {
        return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.ChooseSuggestionOnEnterProperty(); });
    }
    inline SearchBoxResultSuggestionChosenEventArgs::SearchBoxResultSuggestionChosenEventArgs() :
        SearchBoxResultSuggestionChosenEventArgs(impl::call_factory<SearchBoxResultSuggestionChosenEventArgs>([](auto&& f) { return f.template ActivateInstance<SearchBoxResultSuggestionChosenEventArgs>(); }))
    {
    }
    inline SelectionChangedEventArgs::SelectionChangedEventArgs(param::vector<Windows::Foundation::IInspectable> const& removedItems, param::vector<Windows::Foundation::IInspectable> const& addedItems)
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SelectionChangedEventArgs, Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>([&](auto&& f) { return f.CreateInstanceWithRemovedItemsAndAddedItems(removedItems, addedItems, baseInterface, innerInterface); });
    }
    inline SemanticZoom::SemanticZoom() :
        SemanticZoom(impl::call_factory<SemanticZoom>([](auto&& f) { return f.template ActivateInstance<SemanticZoom>(); }))
    {
    }
    inline auto SemanticZoom::ZoomedInViewProperty()
    {
        return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.ZoomedInViewProperty(); });
    }
    inline auto SemanticZoom::ZoomedOutViewProperty()
    {
        return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.ZoomedOutViewProperty(); });
    }
    inline auto SemanticZoom::IsZoomedInViewActiveProperty()
    {
        return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.IsZoomedInViewActiveProperty(); });
    }
    inline auto SemanticZoom::CanChangeViewsProperty()
    {
        return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.CanChangeViewsProperty(); });
    }
    inline auto SemanticZoom::IsZoomOutButtonEnabledProperty()
    {
        return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.IsZoomOutButtonEnabledProperty(); });
    }
    inline SemanticZoomLocation::SemanticZoomLocation() :
        SemanticZoomLocation(impl::call_factory<SemanticZoomLocation>([](auto&& f) { return f.template ActivateInstance<SemanticZoomLocation>(); }))
    {
    }
    inline SemanticZoomViewChangedEventArgs::SemanticZoomViewChangedEventArgs() :
        SemanticZoomViewChangedEventArgs(impl::call_factory<SemanticZoomViewChangedEventArgs>([](auto&& f) { return f.template ActivateInstance<SemanticZoomViewChangedEventArgs>(); }))
    {
    }
    inline SettingsFlyout::SettingsFlyout()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SettingsFlyout::TitleProperty()
    {
        return impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>([&](auto&& f) { return f.TitleProperty(); });
    }
    inline auto SettingsFlyout::HeaderBackgroundProperty()
    {
        return impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>([&](auto&& f) { return f.HeaderBackgroundProperty(); });
    }
    inline auto SettingsFlyout::HeaderForegroundProperty()
    {
        return impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>([&](auto&& f) { return f.HeaderForegroundProperty(); });
    }
    inline auto SettingsFlyout::IconSourceProperty()
    {
        return impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>([&](auto&& f) { return f.IconSourceProperty(); });
    }
    inline Slider::Slider()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Slider::IntermediateValueProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.IntermediateValueProperty(); });
    }
    inline auto Slider::StepFrequencyProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.StepFrequencyProperty(); });
    }
    inline auto Slider::SnapsToProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.SnapsToProperty(); });
    }
    inline auto Slider::TickFrequencyProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.TickFrequencyProperty(); });
    }
    inline auto Slider::TickPlacementProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.TickPlacementProperty(); });
    }
    inline auto Slider::OrientationProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto Slider::IsDirectionReversedProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.IsDirectionReversedProperty(); });
    }
    inline auto Slider::IsThumbToolTipEnabledProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.IsThumbToolTipEnabledProperty(); });
    }
    inline auto Slider::ThumbToolTipValueConverterProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.ThumbToolTipValueConverterProperty(); });
    }
    inline auto Slider::HeaderProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics2>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto Slider::HeaderTemplateProperty()
    {
        return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline SplitButton::SplitButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SplitButton, Windows::UI::Xaml::Controls::ISplitButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SplitButton::FlyoutProperty()
    {
        return impl::call_factory<SplitButton, Windows::UI::Xaml::Controls::ISplitButtonStatics>([&](auto&& f) { return f.FlyoutProperty(); });
    }
    inline auto SplitButton::CommandProperty()
    {
        return impl::call_factory<SplitButton, Windows::UI::Xaml::Controls::ISplitButtonStatics>([&](auto&& f) { return f.CommandProperty(); });
    }
    inline auto SplitButton::CommandParameterProperty()
    {
        return impl::call_factory<SplitButton, Windows::UI::Xaml::Controls::ISplitButtonStatics>([&](auto&& f) { return f.CommandParameterProperty(); });
    }
    inline SplitButtonAutomationPeer::SplitButtonAutomationPeer(Windows::UI::Xaml::Controls::SplitButton const& owner)
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SplitButtonAutomationPeer, Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory>([&](auto&& f) { return f.CreateInstance(owner, baseInterface, innerInterface); });
    }
    inline SplitView::SplitView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SplitView::ContentProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.ContentProperty(); });
    }
    inline auto SplitView::PaneProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.PaneProperty(); });
    }
    inline auto SplitView::IsPaneOpenProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.IsPaneOpenProperty(); });
    }
    inline auto SplitView::OpenPaneLengthProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.OpenPaneLengthProperty(); });
    }
    inline auto SplitView::CompactPaneLengthProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.CompactPaneLengthProperty(); });
    }
    inline auto SplitView::PanePlacementProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.PanePlacementProperty(); });
    }
    inline auto SplitView::DisplayModeProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.DisplayModeProperty(); });
    }
    inline auto SplitView::TemplateSettingsProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.TemplateSettingsProperty(); });
    }
    inline auto SplitView::PaneBackgroundProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.PaneBackgroundProperty(); });
    }
    inline auto SplitView::LightDismissOverlayModeProperty()
    {
        return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics2>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline StackPanel::StackPanel()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto StackPanel::AreScrollSnapPointsRegularProperty()
    {
        return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics>([&](auto&& f) { return f.AreScrollSnapPointsRegularProperty(); });
    }
    inline auto StackPanel::OrientationProperty()
    {
        return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto StackPanel::BorderBrushProperty()
    {
        return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>([&](auto&& f) { return f.BorderBrushProperty(); });
    }
    inline auto StackPanel::BorderThicknessProperty()
    {
        return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>([&](auto&& f) { return f.BorderThicknessProperty(); });
    }
    inline auto StackPanel::CornerRadiusProperty()
    {
        return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>([&](auto&& f) { return f.CornerRadiusProperty(); });
    }
    inline auto StackPanel::PaddingProperty()
    {
        return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto StackPanel::SpacingProperty()
    {
        return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics4>([&](auto&& f) { return f.SpacingProperty(); });
    }
    inline auto StackPanel::BackgroundSizingProperty()
    {
        return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics5>([&](auto&& f) { return f.BackgroundSizingProperty(); });
    }
    inline StyleSelector::StyleSelector()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<StyleSelector, Windows::UI::Xaml::Controls::IStyleSelectorFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline SwapChainBackgroundPanel::SwapChainBackgroundPanel()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwapChainBackgroundPanel, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline SwapChainPanel::SwapChainPanel()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SwapChainPanel::CompositionScaleXProperty()
    {
        return impl::call_factory<SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelStatics>([&](auto&& f) { return f.CompositionScaleXProperty(); });
    }
    inline auto SwapChainPanel::CompositionScaleYProperty()
    {
        return impl::call_factory<SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelStatics>([&](auto&& f) { return f.CompositionScaleYProperty(); });
    }
    inline SwipeControl::SwipeControl()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SwipeControl::LeftItemsProperty()
    {
        return impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>([&](auto&& f) { return f.LeftItemsProperty(); });
    }
    inline auto SwipeControl::RightItemsProperty()
    {
        return impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>([&](auto&& f) { return f.RightItemsProperty(); });
    }
    inline auto SwipeControl::TopItemsProperty()
    {
        return impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>([&](auto&& f) { return f.TopItemsProperty(); });
    }
    inline auto SwipeControl::BottomItemsProperty()
    {
        return impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>([&](auto&& f) { return f.BottomItemsProperty(); });
    }
    inline SwipeItem::SwipeItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SwipeItem::IconSourceProperty()
    {
        return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.IconSourceProperty(); });
    }
    inline auto SwipeItem::TextProperty()
    {
        return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.TextProperty(); });
    }
    inline auto SwipeItem::BackgroundProperty()
    {
        return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.BackgroundProperty(); });
    }
    inline auto SwipeItem::ForegroundProperty()
    {
        return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.ForegroundProperty(); });
    }
    inline auto SwipeItem::CommandProperty()
    {
        return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.CommandProperty(); });
    }
    inline auto SwipeItem::CommandParameterProperty()
    {
        return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.CommandParameterProperty(); });
    }
    inline auto SwipeItem::BehaviorOnInvokedProperty()
    {
        return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.BehaviorOnInvokedProperty(); });
    }
    inline SwipeItems::SwipeItems()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwipeItems, Windows::UI::Xaml::Controls::ISwipeItemsFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SwipeItems::ModeProperty()
    {
        return impl::call_factory<SwipeItems, Windows::UI::Xaml::Controls::ISwipeItemsStatics>([&](auto&& f) { return f.ModeProperty(); });
    }
    inline SymbolIcon::SymbolIcon() :
        SymbolIcon(impl::call_factory<SymbolIcon>([](auto&& f) { return f.template ActivateInstance<SymbolIcon>(); }))
    {
    }
    inline SymbolIcon::SymbolIcon(Windows::UI::Xaml::Controls::Symbol const& symbol) :
        SymbolIcon(impl::call_factory<SymbolIcon, Windows::UI::Xaml::Controls::ISymbolIconFactory>([&](auto&& f) { return f.CreateInstanceWithSymbol(symbol); }))
    {
    }
    inline auto SymbolIcon::SymbolProperty()
    {
        return impl::call_factory<SymbolIcon, Windows::UI::Xaml::Controls::ISymbolIconStatics>([&](auto&& f) { return f.SymbolProperty(); });
    }
    inline SymbolIconSource::SymbolIconSource()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SymbolIconSource, Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SymbolIconSource::SymbolProperty()
    {
        return impl::call_factory<SymbolIconSource, Windows::UI::Xaml::Controls::ISymbolIconSourceStatics>([&](auto&& f) { return f.SymbolProperty(); });
    }
    inline TextBlock::TextBlock() :
        TextBlock(impl::call_factory<TextBlock>([](auto&& f) { return f.template ActivateInstance<TextBlock>(); }))
    {
    }
    inline auto TextBlock::FontSizeProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontSizeProperty(); });
    }
    inline auto TextBlock::FontFamilyProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
    }
    inline auto TextBlock::FontWeightProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontWeightProperty(); });
    }
    inline auto TextBlock::FontStyleProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontStyleProperty(); });
    }
    inline auto TextBlock::FontStretchProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontStretchProperty(); });
    }
    inline auto TextBlock::CharacterSpacingProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.CharacterSpacingProperty(); });
    }
    inline auto TextBlock::ForegroundProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.ForegroundProperty(); });
    }
    inline auto TextBlock::TextWrappingProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.TextWrappingProperty(); });
    }
    inline auto TextBlock::TextTrimmingProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.TextTrimmingProperty(); });
    }
    inline auto TextBlock::TextAlignmentProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.TextAlignmentProperty(); });
    }
    inline auto TextBlock::TextProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.TextProperty(); });
    }
    inline auto TextBlock::PaddingProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.PaddingProperty(); });
    }
    inline auto TextBlock::LineHeightProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.LineHeightProperty(); });
    }
    inline auto TextBlock::LineStackingStrategyProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.LineStackingStrategyProperty(); });
    }
    inline auto TextBlock::IsTextSelectionEnabledProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.IsTextSelectionEnabledProperty(); });
    }
    inline auto TextBlock::SelectedTextProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.SelectedTextProperty(); });
    }
    inline auto TextBlock::SelectionHighlightColorProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto TextBlock::MaxLinesProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.MaxLinesProperty(); });
    }
    inline auto TextBlock::TextLineBoundsProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.TextLineBoundsProperty(); });
    }
    inline auto TextBlock::OpticalMarginAlignmentProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.OpticalMarginAlignmentProperty(); });
    }
    inline auto TextBlock::IsColorFontEnabledProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.IsColorFontEnabledProperty(); });
    }
    inline auto TextBlock::TextReadingOrderProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto TextBlock::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics3>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto TextBlock::TextDecorationsProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics5>([&](auto&& f) { return f.TextDecorationsProperty(); });
    }
    inline auto TextBlock::IsTextTrimmedProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics6>([&](auto&& f) { return f.IsTextTrimmedProperty(); });
    }
    inline auto TextBlock::HorizontalTextAlignmentProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics6>([&](auto&& f) { return f.HorizontalTextAlignmentProperty(); });
    }
    inline auto TextBlock::SelectionFlyoutProperty()
    {
        return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics7>([&](auto&& f) { return f.SelectionFlyoutProperty(); });
    }
    inline TextBox::TextBox()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TextBox::TextProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.TextProperty(); });
    }
    inline auto TextBox::MaxLengthProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.MaxLengthProperty(); });
    }
    inline auto TextBox::IsReadOnlyProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.IsReadOnlyProperty(); });
    }
    inline auto TextBox::AcceptsReturnProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.AcceptsReturnProperty(); });
    }
    inline auto TextBox::TextAlignmentProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.TextAlignmentProperty(); });
    }
    inline auto TextBox::TextWrappingProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.TextWrappingProperty(); });
    }
    inline auto TextBox::IsSpellCheckEnabledProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.IsSpellCheckEnabledProperty(); });
    }
    inline auto TextBox::IsTextPredictionEnabledProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.IsTextPredictionEnabledProperty(); });
    }
    inline auto TextBox::InputScopeProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.InputScopeProperty(); });
    }
    inline auto TextBox::HeaderProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto TextBox::HeaderTemplateProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto TextBox::PlaceholderTextProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto TextBox::SelectionHighlightColorProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto TextBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
    }
    inline auto TextBox::IsColorFontEnabledProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.IsColorFontEnabledProperty(); });
    }
    inline auto TextBox::DesiredCandidateWindowAlignmentProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics3>([&](auto&& f) { return f.DesiredCandidateWindowAlignmentProperty(); });
    }
    inline auto TextBox::TextReadingOrderProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics3>([&](auto&& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto TextBox::SelectionHighlightColorWhenNotFocusedProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics5>([&](auto&& f) { return f.SelectionHighlightColorWhenNotFocusedProperty(); });
    }
    inline auto TextBox::HorizontalTextAlignmentProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>([&](auto&& f) { return f.HorizontalTextAlignmentProperty(); });
    }
    inline auto TextBox::CharacterCasingProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>([&](auto&& f) { return f.CharacterCasingProperty(); });
    }
    inline auto TextBox::PlaceholderForegroundProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>([&](auto&& f) { return f.PlaceholderForegroundProperty(); });
    }
    inline auto TextBox::HandwritingViewProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics7>([&](auto&& f) { return f.HandwritingViewProperty(); });
    }
    inline auto TextBox::IsHandwritingViewEnabledProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics7>([&](auto&& f) { return f.IsHandwritingViewEnabledProperty(); });
    }
    inline auto TextBox::CanPasteClipboardContentProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.CanPasteClipboardContentProperty(); });
    }
    inline auto TextBox::CanUndoProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.CanUndoProperty(); });
    }
    inline auto TextBox::CanRedoProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.CanRedoProperty(); });
    }
    inline auto TextBox::SelectionFlyoutProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.SelectionFlyoutProperty(); });
    }
    inline auto TextBox::ProofingMenuFlyoutProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.ProofingMenuFlyoutProperty(); });
    }
    inline auto TextBox::DescriptionProperty()
    {
        return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.DescriptionProperty(); });
    }
    inline TextCommandBarFlyout::TextCommandBarFlyout()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TextCommandBarFlyout, Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline TimePickedEventArgs::TimePickedEventArgs() :
        TimePickedEventArgs(impl::call_factory<TimePickedEventArgs>([](auto&& f) { return f.template ActivateInstance<TimePickedEventArgs>(); }))
    {
    }
    inline TimePicker::TimePicker()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TimePicker::HeaderProperty()
    {
        return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto TimePicker::HeaderTemplateProperty()
    {
        return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto TimePicker::ClockIdentifierProperty()
    {
        return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.ClockIdentifierProperty(); });
    }
    inline auto TimePicker::MinuteIncrementProperty()
    {
        return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.MinuteIncrementProperty(); });
    }
    inline auto TimePicker::TimeProperty()
    {
        return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.TimeProperty(); });
    }
    inline auto TimePicker::LightDismissOverlayModeProperty()
    {
        return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics2>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto TimePicker::SelectedTimeProperty()
    {
        return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics3>([&](auto&& f) { return f.SelectedTimeProperty(); });
    }
    inline TimePickerFlyout::TimePickerFlyout() :
        TimePickerFlyout(impl::call_factory<TimePickerFlyout>([](auto&& f) { return f.template ActivateInstance<TimePickerFlyout>(); }))
    {
    }
    inline auto TimePickerFlyout::ClockIdentifierProperty()
    {
        return impl::call_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>([&](auto&& f) { return f.ClockIdentifierProperty(); });
    }
    inline auto TimePickerFlyout::TimeProperty()
    {
        return impl::call_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>([&](auto&& f) { return f.TimeProperty(); });
    }
    inline auto TimePickerFlyout::MinuteIncrementProperty()
    {
        return impl::call_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>([&](auto&& f) { return f.MinuteIncrementProperty(); });
    }
    inline auto TimePickerFlyoutPresenter::IsDefaultShadowEnabledProperty()
    {
        return impl::call_factory<TimePickerFlyoutPresenter, Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2>([&](auto&& f) { return f.IsDefaultShadowEnabledProperty(); });
    }
    inline ToggleMenuFlyoutItem::ToggleMenuFlyoutItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ToggleMenuFlyoutItem, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ToggleMenuFlyoutItem::IsCheckedProperty()
    {
        return impl::call_factory<ToggleMenuFlyoutItem, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics>([&](auto&& f) { return f.IsCheckedProperty(); });
    }
    inline ToggleSplitButton::ToggleSplitButton()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ToggleSplitButton, Windows::UI::Xaml::Controls::IToggleSplitButtonFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ToggleSplitButtonAutomationPeer::ToggleSplitButtonAutomationPeer(Windows::UI::Xaml::Controls::ToggleSplitButton const& owner)
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ToggleSplitButtonAutomationPeer, Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory>([&](auto&& f) { return f.CreateInstance(owner, baseInterface, innerInterface); });
    }
    inline ToggleSwitch::ToggleSwitch() :
        ToggleSwitch(impl::call_factory<ToggleSwitch>([](auto&& f) { return f.template ActivateInstance<ToggleSwitch>(); }))
    {
    }
    inline auto ToggleSwitch::IsOnProperty()
    {
        return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.IsOnProperty(); });
    }
    inline auto ToggleSwitch::HeaderProperty()
    {
        return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.HeaderProperty(); });
    }
    inline auto ToggleSwitch::HeaderTemplateProperty()
    {
        return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto ToggleSwitch::OnContentProperty()
    {
        return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.OnContentProperty(); });
    }
    inline auto ToggleSwitch::OnContentTemplateProperty()
    {
        return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.OnContentTemplateProperty(); });
    }
    inline auto ToggleSwitch::OffContentProperty()
    {
        return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.OffContentProperty(); });
    }
    inline auto ToggleSwitch::OffContentTemplateProperty()
    {
        return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.OffContentTemplateProperty(); });
    }
    inline ToolTip::ToolTip()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ToolTip::HorizontalOffsetProperty()
    {
        return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.HorizontalOffsetProperty(); });
    }
    inline auto ToolTip::IsOpenProperty()
    {
        return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.IsOpenProperty(); });
    }
    inline auto ToolTip::PlacementProperty()
    {
        return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.PlacementProperty(); });
    }
    inline auto ToolTip::PlacementTargetProperty()
    {
        return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.PlacementTargetProperty(); });
    }
    inline auto ToolTip::VerticalOffsetProperty()
    {
        return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.VerticalOffsetProperty(); });
    }
    inline auto ToolTip::PlacementRectProperty()
    {
        return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics2>([&](auto&& f) { return f.PlacementRectProperty(); });
    }
    inline auto ToolTipService::PlacementProperty()
    {
        return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.PlacementProperty(); });
    }
    inline auto ToolTipService::GetPlacement(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.GetPlacement(element); });
    }
    inline auto ToolTipService::SetPlacement(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::Primitives::PlacementMode const& value)
    {
        impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.SetPlacement(element, value); });
    }
    inline auto ToolTipService::PlacementTargetProperty()
    {
        return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.PlacementTargetProperty(); });
    }
    inline auto ToolTipService::GetPlacementTarget(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.GetPlacementTarget(element); });
    }
    inline auto ToolTipService::SetPlacementTarget(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::UIElement const& value)
    {
        impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.SetPlacementTarget(element, value); });
    }
    inline auto ToolTipService::ToolTipProperty()
    {
        return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.ToolTipProperty(); });
    }
    inline auto ToolTipService::GetToolTip(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.GetToolTip(element); });
    }
    inline auto ToolTipService::SetToolTip(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.SetToolTip(element, value); });
    }
    inline TreeView::TreeView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TreeView::SelectionModeProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
    }
    inline auto TreeView::CanDragItemsProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.CanDragItemsProperty(); });
    }
    inline auto TreeView::CanReorderItemsProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.CanReorderItemsProperty(); });
    }
    inline auto TreeView::ItemTemplateProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemTemplateProperty(); });
    }
    inline auto TreeView::ItemTemplateSelectorProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemTemplateSelectorProperty(); });
    }
    inline auto TreeView::ItemContainerStyleProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemContainerStyleProperty(); });
    }
    inline auto TreeView::ItemContainerStyleSelectorProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemContainerStyleSelectorProperty(); });
    }
    inline auto TreeView::ItemContainerTransitionsProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemContainerTransitionsProperty(); });
    }
    inline auto TreeView::ItemsSourceProperty()
    {
        return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemsSourceProperty(); });
    }
    inline TreeViewItem::TreeViewItem()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TreeViewItem::GlyphOpacityProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.GlyphOpacityProperty(); });
    }
    inline auto TreeViewItem::GlyphBrushProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.GlyphBrushProperty(); });
    }
    inline auto TreeViewItem::ExpandedGlyphProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.ExpandedGlyphProperty(); });
    }
    inline auto TreeViewItem::CollapsedGlyphProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.CollapsedGlyphProperty(); });
    }
    inline auto TreeViewItem::GlyphSizeProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.GlyphSizeProperty(); });
    }
    inline auto TreeViewItem::IsExpandedProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.IsExpandedProperty(); });
    }
    inline auto TreeViewItem::TreeViewItemTemplateSettingsProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.TreeViewItemTemplateSettingsProperty(); });
    }
    inline auto TreeViewItem::HasUnrealizedChildrenProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics2>([&](auto&& f) { return f.HasUnrealizedChildrenProperty(); });
    }
    inline auto TreeViewItem::ItemsSourceProperty()
    {
        return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics2>([&](auto&& f) { return f.ItemsSourceProperty(); });
    }
    inline TreeViewItemTemplateSettings::TreeViewItemTemplateSettings()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TreeViewItemTemplateSettings::ExpandedGlyphVisibilityProperty()
    {
        return impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>([&](auto&& f) { return f.ExpandedGlyphVisibilityProperty(); });
    }
    inline auto TreeViewItemTemplateSettings::CollapsedGlyphVisibilityProperty()
    {
        return impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>([&](auto&& f) { return f.CollapsedGlyphVisibilityProperty(); });
    }
    inline auto TreeViewItemTemplateSettings::IndentationProperty()
    {
        return impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>([&](auto&& f) { return f.IndentationProperty(); });
    }
    inline auto TreeViewItemTemplateSettings::DragItemsCountProperty()
    {
        return impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>([&](auto&& f) { return f.DragItemsCountProperty(); });
    }
    inline TreeViewList::TreeViewList()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeViewList, Windows::UI::Xaml::Controls::ITreeViewListFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline TreeViewNode::TreeViewNode()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TreeViewNode::ContentProperty()
    {
        return impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>([&](auto&& f) { return f.ContentProperty(); });
    }
    inline auto TreeViewNode::DepthProperty()
    {
        return impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>([&](auto&& f) { return f.DepthProperty(); });
    }
    inline auto TreeViewNode::IsExpandedProperty()
    {
        return impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>([&](auto&& f) { return f.IsExpandedProperty(); });
    }
    inline auto TreeViewNode::HasChildrenProperty()
    {
        return impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>([&](auto&& f) { return f.HasChildrenProperty(); });
    }
    inline TwoPaneView::TwoPaneView()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TwoPaneView::Pane1Property()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.Pane1Property(); });
    }
    inline auto TwoPaneView::Pane2Property()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.Pane2Property(); });
    }
    inline auto TwoPaneView::Pane1LengthProperty()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.Pane1LengthProperty(); });
    }
    inline auto TwoPaneView::Pane2LengthProperty()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.Pane2LengthProperty(); });
    }
    inline auto TwoPaneView::PanePriorityProperty()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.PanePriorityProperty(); });
    }
    inline auto TwoPaneView::ModeProperty()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.ModeProperty(); });
    }
    inline auto TwoPaneView::WideModeConfigurationProperty()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.WideModeConfigurationProperty(); });
    }
    inline auto TwoPaneView::TallModeConfigurationProperty()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.TallModeConfigurationProperty(); });
    }
    inline auto TwoPaneView::MinWideModeWidthProperty()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.MinWideModeWidthProperty(); });
    }
    inline auto TwoPaneView::MinTallModeHeightProperty()
    {
        return impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewStatics>([&](auto&& f) { return f.MinTallModeHeightProperty(); });
    }
    inline UserControl::UserControl()
    {
        Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<UserControl, Windows::UI::Xaml::Controls::IUserControlFactory>([&](auto&& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto UserControl::ContentProperty()
    {
        return impl::call_factory<UserControl, Windows::UI::Xaml::Controls::IUserControlStatics>([&](auto&& f) { return f.ContentProperty(); });
    }
    inline VariableSizedWrapGrid::VariableSizedWrapGrid() :
        VariableSizedWrapGrid(impl::call_factory<VariableSizedWrapGrid>([](auto&& f) { return f.template ActivateInstance<VariableSizedWrapGrid>(); }))
    {
    }
    inline auto VariableSizedWrapGrid::ItemHeightProperty()
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.ItemHeightProperty(); });
    }
    inline auto VariableSizedWrapGrid::ItemWidthProperty()
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.ItemWidthProperty(); });
    }
    inline auto VariableSizedWrapGrid::OrientationProperty()
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto VariableSizedWrapGrid::HorizontalChildrenAlignmentProperty()
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.HorizontalChildrenAlignmentProperty(); });
    }
    inline auto VariableSizedWrapGrid::VerticalChildrenAlignmentProperty()
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.VerticalChildrenAlignmentProperty(); });
    }
    inline auto VariableSizedWrapGrid::MaximumRowsOrColumnsProperty()
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.MaximumRowsOrColumnsProperty(); });
    }
    inline auto VariableSizedWrapGrid::RowSpanProperty()
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.RowSpanProperty(); });
    }
    inline auto VariableSizedWrapGrid::GetRowSpan(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.GetRowSpan(element); });
    }
    inline auto VariableSizedWrapGrid::SetRowSpan(Windows::UI::Xaml::UIElement const& element, int32_t value)
    {
        impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.SetRowSpan(element, value); });
    }
    inline auto VariableSizedWrapGrid::ColumnSpanProperty()
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.ColumnSpanProperty(); });
    }
    inline auto VariableSizedWrapGrid::GetColumnSpan(Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.GetColumnSpan(element); });
    }
    inline auto VariableSizedWrapGrid::SetColumnSpan(Windows::UI::Xaml::UIElement const& element, int32_t value)
    {
        impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.SetColumnSpan(element, value); });
    }
    inline Viewbox::Viewbox() :
        Viewbox(impl::call_factory<Viewbox>([](auto&& f) { return f.template ActivateInstance<Viewbox>(); }))
    {
    }
    inline auto Viewbox::StretchProperty()
    {
        return impl::call_factory<Viewbox, Windows::UI::Xaml::Controls::IViewboxStatics>([&](auto&& f) { return f.StretchProperty(); });
    }
    inline auto Viewbox::StretchDirectionProperty()
    {
        return impl::call_factory<Viewbox, Windows::UI::Xaml::Controls::IViewboxStatics>([&](auto&& f) { return f.StretchDirectionProperty(); });
    }
    inline VirtualizingStackPanel::VirtualizingStackPanel() :
        VirtualizingStackPanel(impl::call_factory<VirtualizingStackPanel>([](auto&& f) { return f.template ActivateInstance<VirtualizingStackPanel>(); }))
    {
    }
    inline auto VirtualizingStackPanel::AreScrollSnapPointsRegularProperty()
    {
        return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.AreScrollSnapPointsRegularProperty(); });
    }
    inline auto VirtualizingStackPanel::OrientationProperty()
    {
        return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto VirtualizingStackPanel::VirtualizationModeProperty()
    {
        return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.VirtualizationModeProperty(); });
    }
    inline auto VirtualizingStackPanel::GetVirtualizationMode(Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.GetVirtualizationMode(element); });
    }
    inline auto VirtualizingStackPanel::SetVirtualizationMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::VirtualizationMode const& value)
    {
        impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.SetVirtualizationMode(element, value); });
    }
    inline auto VirtualizingStackPanel::IsVirtualizingProperty()
    {
        return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.IsVirtualizingProperty(); });
    }
    inline auto VirtualizingStackPanel::GetIsVirtualizing(Windows::UI::Xaml::DependencyObject const& o)
    {
        return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.GetIsVirtualizing(o); });
    }
    inline WebView::WebView() :
        WebView(impl::call_factory<WebView>([](auto&& f) { return f.template ActivateInstance<WebView>(); }))
    {
    }
    inline WebView::WebView(Windows::UI::Xaml::Controls::WebViewExecutionMode const& executionMode) :
        WebView(impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewFactory4>([&](auto&& f) { return f.CreateInstanceWithExecutionMode(executionMode); }))
    {
    }
    inline auto WebView::AnyScriptNotifyUri()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>([&](auto&& f) { return f.AnyScriptNotifyUri(); });
    }
    inline auto WebView::SourceProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>([&](auto&& f) { return f.SourceProperty(); });
    }
    inline auto WebView::AllowedScriptNotifyUrisProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>([&](auto&& f) { return f.AllowedScriptNotifyUrisProperty(); });
    }
    inline auto WebView::DataTransferPackageProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>([&](auto&& f) { return f.DataTransferPackageProperty(); });
    }
    inline auto WebView::CanGoBackProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>([&](auto&& f) { return f.CanGoBackProperty(); });
    }
    inline auto WebView::CanGoForwardProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>([&](auto&& f) { return f.CanGoForwardProperty(); });
    }
    inline auto WebView::DocumentTitleProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>([&](auto&& f) { return f.DocumentTitleProperty(); });
    }
    inline auto WebView::DefaultBackgroundColorProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>([&](auto&& f) { return f.DefaultBackgroundColorProperty(); });
    }
    inline auto WebView::ContainsFullScreenElementProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics3>([&](auto&& f) { return f.ContainsFullScreenElementProperty(); });
    }
    inline auto WebView::DefaultExecutionMode()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics4>([&](auto&& f) { return f.DefaultExecutionMode(); });
    }
    inline auto WebView::ClearTemporaryWebDataAsync()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics4>([&](auto&& f) { return f.ClearTemporaryWebDataAsync(); });
    }
    inline auto WebView::XYFocusLeftProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>([&](auto&& f) { return f.XYFocusLeftProperty(); });
    }
    inline auto WebView::XYFocusRightProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>([&](auto&& f) { return f.XYFocusRightProperty(); });
    }
    inline auto WebView::XYFocusUpProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>([&](auto&& f) { return f.XYFocusUpProperty(); });
    }
    inline auto WebView::XYFocusDownProperty()
    {
        return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>([&](auto&& f) { return f.XYFocusDownProperty(); });
    }
    inline WebViewBrush::WebViewBrush() :
        WebViewBrush(impl::call_factory<WebViewBrush>([](auto&& f) { return f.template ActivateInstance<WebViewBrush>(); }))
    {
    }
    inline auto WebViewBrush::SourceNameProperty()
    {
        return impl::call_factory<WebViewBrush, Windows::UI::Xaml::Controls::IWebViewBrushStatics>([&](auto&& f) { return f.SourceNameProperty(); });
    }
    inline WrapGrid::WrapGrid() :
        WrapGrid(impl::call_factory<WrapGrid>([](auto&& f) { return f.template ActivateInstance<WrapGrid>(); }))
    {
    }
    inline auto WrapGrid::ItemWidthProperty()
    {
        return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.ItemWidthProperty(); });
    }
    inline auto WrapGrid::ItemHeightProperty()
    {
        return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.ItemHeightProperty(); });
    }
    inline auto WrapGrid::OrientationProperty()
    {
        return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.OrientationProperty(); });
    }
    inline auto WrapGrid::HorizontalChildrenAlignmentProperty()
    {
        return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.HorizontalChildrenAlignmentProperty(); });
    }
    inline auto WrapGrid::VerticalChildrenAlignmentProperty()
    {
        return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.VerticalChildrenAlignmentProperty(); });
    }
    inline auto WrapGrid::MaximumRowsOrColumnsProperty()
    {
        return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.MaximumRowsOrColumnsProperty(); });
    }
    template <typename L> BackClickEventHandler::BackClickEventHandler(L handler) :
        BackClickEventHandler(impl::make_delegate<BackClickEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> BackClickEventHandler::BackClickEventHandler(F* handler) :
        BackClickEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> BackClickEventHandler::BackClickEventHandler(O* object, M method) :
        BackClickEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> BackClickEventHandler::BackClickEventHandler(com_ptr<O>&& object, M method) :
        BackClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> BackClickEventHandler::BackClickEventHandler(weak_ref<O>&& object, M method) :
        BackClickEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto BackClickEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::BackClickEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<BackClickEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(L handler) :
        CalendarViewDayItemChangingEventHandler(impl::make_delegate<CalendarViewDayItemChangingEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(F* handler) :
        CalendarViewDayItemChangingEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(O* object, M method) :
        CalendarViewDayItemChangingEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(com_ptr<O>&& object, M method) :
        CalendarViewDayItemChangingEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(weak_ref<O>&& object, M method) :
        CalendarViewDayItemChangingEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto CalendarViewDayItemChangingEventHandler::operator()(Windows::UI::Xaml::Controls::CalendarView const& sender, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<CalendarViewDayItemChangingEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(L handler) :
        CleanUpVirtualizedItemEventHandler(impl::make_delegate<CleanUpVirtualizedItemEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(F* handler) :
        CleanUpVirtualizedItemEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(O* object, M method) :
        CleanUpVirtualizedItemEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(com_ptr<O>&& object, M method) :
        CleanUpVirtualizedItemEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(weak_ref<O>&& object, M method) :
        CleanUpVirtualizedItemEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto CleanUpVirtualizedItemEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<CleanUpVirtualizedItemEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(L handler) :
        ContextMenuOpeningEventHandler(impl::make_delegate<ContextMenuOpeningEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(F* handler) :
        ContextMenuOpeningEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(O* object, M method) :
        ContextMenuOpeningEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(com_ptr<O>&& object, M method) :
        ContextMenuOpeningEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(weak_ref<O>&& object, M method) :
        ContextMenuOpeningEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto ContextMenuOpeningEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::ContextMenuEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<ContextMenuOpeningEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> DragItemsStartingEventHandler::DragItemsStartingEventHandler(L handler) :
        DragItemsStartingEventHandler(impl::make_delegate<DragItemsStartingEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> DragItemsStartingEventHandler::DragItemsStartingEventHandler(F* handler) :
        DragItemsStartingEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> DragItemsStartingEventHandler::DragItemsStartingEventHandler(O* object, M method) :
        DragItemsStartingEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> DragItemsStartingEventHandler::DragItemsStartingEventHandler(com_ptr<O>&& object, M method) :
        DragItemsStartingEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> DragItemsStartingEventHandler::DragItemsStartingEventHandler(weak_ref<O>&& object, M method) :
        DragItemsStartingEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto DragItemsStartingEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::DragItemsStartingEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<DragItemsStartingEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(L handler) :
        HubSectionHeaderClickEventHandler(impl::make_delegate<HubSectionHeaderClickEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(F* handler) :
        HubSectionHeaderClickEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(O* object, M method) :
        HubSectionHeaderClickEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(com_ptr<O>&& object, M method) :
        HubSectionHeaderClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(weak_ref<O>&& object, M method) :
        HubSectionHeaderClickEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto HubSectionHeaderClickEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::HubSectionHeaderClickEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<HubSectionHeaderClickEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> ItemClickEventHandler::ItemClickEventHandler(L handler) :
        ItemClickEventHandler(impl::make_delegate<ItemClickEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> ItemClickEventHandler::ItemClickEventHandler(F* handler) :
        ItemClickEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> ItemClickEventHandler::ItemClickEventHandler(O* object, M method) :
        ItemClickEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> ItemClickEventHandler::ItemClickEventHandler(com_ptr<O>&& object, M method) :
        ItemClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> ItemClickEventHandler::ItemClickEventHandler(weak_ref<O>&& object, M method) :
        ItemClickEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto ItemClickEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::ItemClickEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<ItemClickEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> ListViewItemToKeyHandler::ListViewItemToKeyHandler(L handler) :
        ListViewItemToKeyHandler(impl::make_delegate<ListViewItemToKeyHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> ListViewItemToKeyHandler::ListViewItemToKeyHandler(F* handler) :
        ListViewItemToKeyHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> ListViewItemToKeyHandler::ListViewItemToKeyHandler(O* object, M method) :
        ListViewItemToKeyHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> ListViewItemToKeyHandler::ListViewItemToKeyHandler(com_ptr<O>&& object, M method) :
        ListViewItemToKeyHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> ListViewItemToKeyHandler::ListViewItemToKeyHandler(weak_ref<O>&& object, M method) :
        ListViewItemToKeyHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto ListViewItemToKeyHandler::operator()(Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        check_hresult((*(impl::abi_t<ListViewItemToKeyHandler>**)this)->Invoke(*(void**)(&item), &result));
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename L> ListViewKeyToItemHandler::ListViewKeyToItemHandler(L handler) :
        ListViewKeyToItemHandler(impl::make_delegate<ListViewKeyToItemHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> ListViewKeyToItemHandler::ListViewKeyToItemHandler(F* handler) :
        ListViewKeyToItemHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> ListViewKeyToItemHandler::ListViewKeyToItemHandler(O* object, M method) :
        ListViewKeyToItemHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> ListViewKeyToItemHandler::ListViewKeyToItemHandler(com_ptr<O>&& object, M method) :
        ListViewKeyToItemHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> ListViewKeyToItemHandler::ListViewKeyToItemHandler(weak_ref<O>&& object, M method) :
        ListViewKeyToItemHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto ListViewKeyToItemHandler::operator()(param::hstring const& key) const
    {
        void* operation{};
        check_hresult((*(impl::abi_t<ListViewKeyToItemHandler>**)this)->Invoke(*(void**)(&key), &operation));
        return Windows::Foundation::IAsyncOperation<Windows::Foundation::IInspectable>{ operation, take_ownership_from_abi };
    }
    template <typename L> NotifyEventHandler::NotifyEventHandler(L handler) :
        NotifyEventHandler(impl::make_delegate<NotifyEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> NotifyEventHandler::NotifyEventHandler(F* handler) :
        NotifyEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> NotifyEventHandler::NotifyEventHandler(O* object, M method) :
        NotifyEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> NotifyEventHandler::NotifyEventHandler(com_ptr<O>&& object, M method) :
        NotifyEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> NotifyEventHandler::NotifyEventHandler(weak_ref<O>&& object, M method) :
        NotifyEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto NotifyEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::NotifyEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<NotifyEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(L handler) :
        SectionsInViewChangedEventHandler(impl::make_delegate<SectionsInViewChangedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(F* handler) :
        SectionsInViewChangedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(O* object, M method) :
        SectionsInViewChangedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(com_ptr<O>&& object, M method) :
        SectionsInViewChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(weak_ref<O>&& object, M method) :
        SectionsInViewChangedEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto SectionsInViewChangedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::SectionsInViewChangedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<SectionsInViewChangedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> SelectionChangedEventHandler::SelectionChangedEventHandler(L handler) :
        SelectionChangedEventHandler(impl::make_delegate<SelectionChangedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> SelectionChangedEventHandler::SelectionChangedEventHandler(F* handler) :
        SelectionChangedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> SelectionChangedEventHandler::SelectionChangedEventHandler(O* object, M method) :
        SelectionChangedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> SelectionChangedEventHandler::SelectionChangedEventHandler(com_ptr<O>&& object, M method) :
        SelectionChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> SelectionChangedEventHandler::SelectionChangedEventHandler(weak_ref<O>&& object, M method) :
        SelectionChangedEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto SelectionChangedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::SelectionChangedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<SelectionChangedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(L handler) :
        SemanticZoomViewChangedEventHandler(impl::make_delegate<SemanticZoomViewChangedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(F* handler) :
        SemanticZoomViewChangedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(O* object, M method) :
        SemanticZoomViewChangedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(com_ptr<O>&& object, M method) :
        SemanticZoomViewChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(weak_ref<O>&& object, M method) :
        SemanticZoomViewChangedEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto SemanticZoomViewChangedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<SemanticZoomViewChangedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> TextChangedEventHandler::TextChangedEventHandler(L handler) :
        TextChangedEventHandler(impl::make_delegate<TextChangedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> TextChangedEventHandler::TextChangedEventHandler(F* handler) :
        TextChangedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> TextChangedEventHandler::TextChangedEventHandler(O* object, M method) :
        TextChangedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> TextChangedEventHandler::TextChangedEventHandler(com_ptr<O>&& object, M method) :
        TextChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> TextChangedEventHandler::TextChangedEventHandler(weak_ref<O>&& object, M method) :
        TextChangedEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto TextChangedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::TextChangedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<TextChangedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> TextControlPasteEventHandler::TextControlPasteEventHandler(L handler) :
        TextControlPasteEventHandler(impl::make_delegate<TextControlPasteEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> TextControlPasteEventHandler::TextControlPasteEventHandler(F* handler) :
        TextControlPasteEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> TextControlPasteEventHandler::TextControlPasteEventHandler(O* object, M method) :
        TextControlPasteEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> TextControlPasteEventHandler::TextControlPasteEventHandler(com_ptr<O>&& object, M method) :
        TextControlPasteEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> TextControlPasteEventHandler::TextControlPasteEventHandler(weak_ref<O>&& object, M method) :
        TextControlPasteEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto TextControlPasteEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::TextControlPasteEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<TextControlPasteEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(L handler) :
        WebViewNavigationFailedEventHandler(impl::make_delegate<WebViewNavigationFailedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(F* handler) :
        WebViewNavigationFailedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(O* object, M method) :
        WebViewNavigationFailedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(com_ptr<O>&& object, M method) :
        WebViewNavigationFailedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename M> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(weak_ref<O>&& object, M method) :
        WebViewNavigationFailedEventHandler([o = std::move(object), method](auto&&... args) { if (auto s = o.get()) { ((*s).*(method))(args...); } })
    {
    }
    inline auto WebViewNavigationFailedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<WebViewNavigationFailedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename D> auto IAppBarOverridesT<D>::OnClosed(Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IAppBarOverrides>().OnClosed(e);
    }
    template <typename D> auto IAppBarOverridesT<D>::OnOpened(Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IAppBarOverrides>().OnOpened(e);
    }
    template <typename D> auto IAppBarOverrides3T<D>::OnClosing(Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IAppBarOverrides3>().OnClosing(e);
    }
    template <typename D> auto IAppBarOverrides3T<D>::OnOpening(Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IAppBarOverrides3>().OnOpening(e);
    }
    template <typename D> auto IComboBoxOverridesT<D>::OnDropDownClosed(Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IComboBoxOverrides>().OnDropDownClosed(e);
    }
    template <typename D> auto IComboBoxOverridesT<D>::OnDropDownOpened(Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IComboBoxOverrides>().OnDropDownOpened(e);
    }
    template <typename D> auto IContentControlOverridesT<D>::OnContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
    {
        return shim().template try_as<IContentControlOverrides>().OnContentChanged(oldContent, newContent);
    }
    template <typename D> auto IContentControlOverridesT<D>::OnContentTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldContentTemplate, Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
    {
        return shim().template try_as<IContentControlOverrides>().OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
    }
    template <typename D> auto IContentControlOverridesT<D>::OnContentTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector) const
    {
        return shim().template try_as<IContentControlOverrides>().OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
    }
    template <typename D> auto IContentPresenterOverridesT<D>::OnContentTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldContentTemplate, Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
    {
        return shim().template try_as<IContentPresenterOverrides>().OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
    }
    template <typename D> auto IContentPresenterOverridesT<D>::OnContentTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector) const
    {
        return shim().template try_as<IContentPresenterOverrides>().OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerEntered(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerEntered(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerPressed(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerMoved(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerMoved(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerReleased(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerExited(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerExited(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerCaptureLost(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerCaptureLost(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerCanceled(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerCanceled(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerWheelChanged(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerWheelChanged(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnTapped(Windows::UI::Xaml::Input::TappedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnTapped(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDoubleTapped(Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDoubleTapped(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnHolding(Windows::UI::Xaml::Input::HoldingRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnHolding(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnRightTapped(Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnRightTapped(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationStarting(Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationStarting(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationInertiaStarting(Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationInertiaStarting(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationStarted(Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationStarted(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationDelta(Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationDelta(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationCompleted(Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationCompleted(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnKeyUp(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnKeyDown(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnGotFocus(Windows::UI::Xaml::RoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnGotFocus(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnLostFocus(Windows::UI::Xaml::RoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnLostFocus(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDragEnter(Windows::UI::Xaml::DragEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDragEnter(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDragLeave(Windows::UI::Xaml::DragEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDragLeave(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDragOver(Windows::UI::Xaml::DragEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDragOver(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDrop(Windows::UI::Xaml::DragEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDrop(e);
    }
    template <typename D> auto IControlOverrides6T<D>::OnPreviewKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides6>().OnPreviewKeyDown(e);
    }
    template <typename D> auto IControlOverrides6T<D>::OnPreviewKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides6>().OnPreviewKeyUp(e);
    }
    template <typename D> auto IControlOverrides6T<D>::OnCharacterReceived(Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides6>().OnCharacterReceived(e);
    }
    template <typename D> auto IDataTemplateSelectorOverridesT<D>::SelectTemplateCore(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
    {
        return shim().template try_as<IDataTemplateSelectorOverrides>().SelectTemplateCore(item, container);
    }
    template <typename D> auto IDataTemplateSelectorOverrides2T<D>::SelectTemplateCore(Windows::Foundation::IInspectable const& item) const
    {
        return shim().template try_as<IDataTemplateSelectorOverrides2>().SelectTemplateCore(item);
    }
    template <typename D> auto IGroupStyleSelectorOverridesT<D>::SelectGroupStyleCore(Windows::Foundation::IInspectable const& group, uint32_t level) const
    {
        return shim().template try_as<IGroupStyleSelectorOverrides>().SelectGroupStyleCore(group, level);
    }
    template <typename D> auto IInkToolbarCustomPenOverridesT<D>::CreateInkDrawingAttributesCore(Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth) const
    {
        return shim().template try_as<IInkToolbarCustomPenOverrides>().CreateInkDrawingAttributesCore(brush, strokeWidth);
    }
    template <typename D> auto IItemsControlOverridesT<D>::IsItemItsOwnContainerOverride(Windows::Foundation::IInspectable const& item) const
    {
        return shim().template try_as<IItemsControlOverrides>().IsItemItsOwnContainerOverride(item);
    }
    template <typename D> auto IItemsControlOverridesT<D>::GetContainerForItemOverride() const
    {
        return shim().template try_as<IItemsControlOverrides>().GetContainerForItemOverride();
    }
    template <typename D> auto IItemsControlOverridesT<D>::ClearContainerForItemOverride(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& item) const
    {
        return shim().template try_as<IItemsControlOverrides>().ClearContainerForItemOverride(element, item);
    }
    template <typename D> auto IItemsControlOverridesT<D>::PrepareContainerForItemOverride(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& item) const
    {
        return shim().template try_as<IItemsControlOverrides>().PrepareContainerForItemOverride(element, item);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemsChanged(Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemsChanged(e);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemContainerStyleChanged(Windows::UI::Xaml::Style const& oldItemContainerStyle, Windows::UI::Xaml::Style const& newItemContainerStyle) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemContainerStyleChanged(oldItemContainerStyle, newItemContainerStyle);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemContainerStyleSelectorChanged(Windows::UI::Xaml::Controls::StyleSelector const& oldItemContainerStyleSelector, Windows::UI::Xaml::Controls::StyleSelector const& newItemContainerStyleSelector) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemContainerStyleSelectorChanged(oldItemContainerStyleSelector, newItemContainerStyleSelector);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldItemTemplate, Windows::UI::Xaml::DataTemplate const& newItemTemplate) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemTemplateChanged(oldItemTemplate, newItemTemplate);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldItemTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newItemTemplateSelector) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemTemplateSelectorChanged(oldItemTemplateSelector, newItemTemplateSelector);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnGroupStyleSelectorChanged(Windows::UI::Xaml::Controls::GroupStyleSelector const& oldGroupStyleSelector, Windows::UI::Xaml::Controls::GroupStyleSelector const& newGroupStyleSelector) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnGroupStyleSelectorChanged(oldGroupStyleSelector, newGroupStyleSelector);
    }
    template <typename D> auto IPageOverridesT<D>::OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
    {
        return shim().template try_as<IPageOverrides>().OnNavigatedFrom(e);
    }
    template <typename D> auto IPageOverridesT<D>::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
    {
        return shim().template try_as<IPageOverrides>().OnNavigatedTo(e);
    }
    template <typename D> auto IPageOverridesT<D>::OnNavigatingFrom(Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e) const
    {
        return shim().template try_as<IPageOverrides>().OnNavigatingFrom(e);
    }
    template <typename D> auto IStyleSelectorOverridesT<D>::SelectStyleCore(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
    {
        return shim().template try_as<IStyleSelectorOverrides>().SelectStyleCore(item, container);
    }
    template <typename D> auto IToggleSwitchOverridesT<D>::OnToggled() const
    {
        return shim().template try_as<IToggleSwitchOverrides>().OnToggled();
    }
    template <typename D> auto IToggleSwitchOverridesT<D>::OnOnContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
    {
        return shim().template try_as<IToggleSwitchOverrides>().OnOnContentChanged(oldContent, newContent);
    }
    template <typename D> auto IToggleSwitchOverridesT<D>::OnOffContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
    {
        return shim().template try_as<IToggleSwitchOverrides>().OnOffContentChanged(oldContent, newContent);
    }
    template <typename D> auto IToggleSwitchOverridesT<D>::OnHeaderChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
    {
        return shim().template try_as<IToggleSwitchOverrides>().OnHeaderChanged(oldContent, newContent);
    }
    template <typename D> auto IVirtualizingPanelOverridesT<D>::OnItemsChanged(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const& args) const
    {
        return shim().template try_as<IVirtualizingPanelOverrides>().OnItemsChanged(sender, args);
    }
    template <typename D> auto IVirtualizingPanelOverridesT<D>::OnClearChildren() const
    {
        return shim().template try_as<IVirtualizingPanelOverrides>().OnClearChildren();
    }
    template <typename D> auto IVirtualizingPanelOverridesT<D>::BringIndexIntoView(int32_t index) const
    {
        return shim().template try_as<IVirtualizingPanelOverrides>().BringIndexIntoView(index);
    }
    template <typename D> auto IVirtualizingStackPanelOverridesT<D>::OnCleanUpVirtualizedItem(Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e) const
    {
        return shim().template try_as<IVirtualizingStackPanelOverrides>().OnCleanUpVirtualizedItem(e);
    }
    template <typename D, typename... Interfaces>
    struct AppBarT :
        implements<D, Windows::UI::Xaml::Controls::IAppBarOverrides, Windows::UI::Xaml::Controls::IAppBarOverrides3, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IAppBar, Windows::UI::Xaml::Controls::IAppBar2, Windows::UI::Xaml::Controls::IAppBar3, Windows::UI::Xaml::Controls::IAppBar4, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, AppBar, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IAppBarOverridesT<D>, Windows::UI::Xaml::Controls::IAppBarOverrides3T<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBar;
    protected:
        AppBarT()
        {
            impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct AppBarButtonT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IAppBarButton, Windows::UI::Xaml::Controls::IAppBarButton3, Windows::UI::Xaml::Controls::IAppBarButton4, Windows::UI::Xaml::Controls::IAppBarButton5, Windows::UI::Xaml::Controls::ICommandBarElement, Windows::UI::Xaml::Controls::ICommandBarElement2, Windows::UI::Xaml::Controls::IButton, Windows::UI::Xaml::Controls::IButtonWithFlyout, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, AppBarButton, Windows::UI::Xaml::Controls::Button, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBarButton;
    protected:
        AppBarButtonT()
        {
            impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct AppBarElementContainerT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IAppBarElementContainer, Windows::UI::Xaml::Controls::ICommandBarElement, Windows::UI::Xaml::Controls::ICommandBarElement2, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, AppBarElementContainer, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBarElementContainer;
    protected:
        AppBarElementContainerT()
        {
            impl::call_factory<AppBarElementContainer, Windows::UI::Xaml::Controls::IAppBarElementContainerFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct AppBarSeparatorT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IAppBarSeparator, Windows::UI::Xaml::Controls::ICommandBarElement, Windows::UI::Xaml::Controls::ICommandBarElement2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, AppBarSeparator, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBarSeparator;
    protected:
        AppBarSeparatorT()
        {
            impl::call_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct AppBarToggleButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IAppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButton3, Windows::UI::Xaml::Controls::IAppBarToggleButton4, Windows::UI::Xaml::Controls::IAppBarToggleButton5, Windows::UI::Xaml::Controls::ICommandBarElement, Windows::UI::Xaml::Controls::ICommandBarElement2, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, AppBarToggleButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBarToggleButton;
    protected:
        AppBarToggleButtonT()
        {
            impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct BitmapIconT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IBitmapIcon, Windows::UI::Xaml::Controls::IBitmapIcon2, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, BitmapIcon, Windows::UI::Xaml::Controls::IconElement, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = BitmapIcon;
    protected:
        BitmapIconT()
        {
            impl::call_factory<BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct BitmapIconSourceT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IBitmapIconSource, Windows::UI::Xaml::Controls::IIconSource, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, BitmapIconSource, Windows::UI::Xaml::Controls::IconSource, Windows::UI::Xaml::DependencyObject>
    {
        using composable = BitmapIconSource;
    protected:
        BitmapIconSourceT()
        {
            impl::call_factory<BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ButtonT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IButton, Windows::UI::Xaml::Controls::IButtonWithFlyout, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Button, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Button;
    protected:
        ButtonT()
        {
            impl::call_factory<Button, Windows::UI::Xaml::Controls::IButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CalendarDatePickerT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ICalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePicker2, Windows::UI::Xaml::Controls::ICalendarDatePicker3, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, CalendarDatePicker, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CalendarDatePicker;
    protected:
        CalendarDatePickerT()
        {
            impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CalendarViewT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ICalendarView, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, CalendarView, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CalendarView;
    protected:
        CalendarViewT()
        {
            impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CalendarViewDayItemT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ICalendarViewDayItem, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, CalendarViewDayItem, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CalendarViewDayItem;
    protected:
        CalendarViewDayItemT()
        {
            impl::call_factory<CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CanvasT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ICanvas, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Canvas, Windows::UI::Xaml::Controls::Panel, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Canvas;
    protected:
        CanvasT()
        {
            impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CheckBoxT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ICheckBox, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, CheckBox, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CheckBox;
    protected:
        CheckBoxT()
        {
            impl::call_factory<CheckBox, Windows::UI::Xaml::Controls::ICheckBoxFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ColorPickerT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IColorPicker, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ColorPicker, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ColorPicker;
    protected:
        ColorPickerT()
        {
            impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ComboBoxT :
        implements<D, Windows::UI::Xaml::Controls::IComboBoxOverrides, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IComboBox, Windows::UI::Xaml::Controls::IComboBox2, Windows::UI::Xaml::Controls::IComboBox3, Windows::UI::Xaml::Controls::IComboBox4, Windows::UI::Xaml::Controls::IComboBox5, Windows::UI::Xaml::Controls::IComboBox6, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ComboBox, Windows::UI::Xaml::Controls::Primitives::Selector, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IComboBoxOverridesT<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ComboBox;
    protected:
        ComboBoxT()
        {
            impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IComboBox>::IsEditable;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IComboBox6>::IsEditable;
    };
    template <typename D, typename... Interfaces>
    struct ComboBoxItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IComboBoxItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ComboBoxItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ComboBoxItem;
    protected:
        ComboBoxItemT()
        {
            impl::call_factory<ComboBoxItem, Windows::UI::Xaml::Controls::IComboBoxItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CommandBarT :
        implements<D, Windows::UI::Xaml::Controls::IAppBarOverrides, Windows::UI::Xaml::Controls::IAppBarOverrides3, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ICommandBar, Windows::UI::Xaml::Controls::ICommandBar2, Windows::UI::Xaml::Controls::ICommandBar3, Windows::UI::Xaml::Controls::IAppBar, Windows::UI::Xaml::Controls::IAppBar2, Windows::UI::Xaml::Controls::IAppBar3, Windows::UI::Xaml::Controls::IAppBar4, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, CommandBar, Windows::UI::Xaml::Controls::AppBar, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IAppBarOverridesT<D>, Windows::UI::Xaml::Controls::IAppBarOverrides3T<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CommandBar;
    protected:
        CommandBarT()
        {
            impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CommandBarFlyoutT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ICommandBarFlyout, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, CommandBarFlyout, Windows::UI::Xaml::Controls::Primitives::FlyoutBase, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = CommandBarFlyout;
    protected:
        CommandBarFlyoutT()
        {
            impl::call_factory<CommandBarFlyout, Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct CommandBarOverflowPresenterT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, CommandBarOverflowPresenter, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CommandBarOverflowPresenter;
    protected:
        CommandBarOverflowPresenterT()
        {
            impl::call_factory<CommandBarOverflowPresenter, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ContentControlT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ContentControl;
    protected:
        ContentControlT()
        {
            impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ContentDialogT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IContentDialog, Windows::UI::Xaml::Controls::IContentDialog2, Windows::UI::Xaml::Controls::IContentDialog3, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ContentDialog, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ContentDialog;
    protected:
        ContentDialogT()
        {
            impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IContentDialog>::ShowAsync;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IContentDialog3>::ShowAsync;
    };
    template <typename D, typename... Interfaces>
    struct ContentPresenterT :
        implements<D, Windows::UI::Xaml::Controls::IContentPresenterOverrides, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IContentPresenter, Windows::UI::Xaml::Controls::IContentPresenter2, Windows::UI::Xaml::Controls::IContentPresenter3, Windows::UI::Xaml::Controls::IContentPresenter4, Windows::UI::Xaml::Controls::IContentPresenter5, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ContentPresenter, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentPresenterOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ContentPresenter;
    protected:
        ContentPresenterT()
        {
            impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ControlT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Control;
    protected:
        ControlT()
        {
            impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct DataTemplateSelectorT :
        implements<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IDataTemplateSelector, Windows::UI::Xaml::Controls::IDataTemplateSelector2, Windows::UI::Xaml::IElementFactory>,
        impl::base<D, DataTemplateSelector>,
        Windows::UI::Xaml::Controls::IDataTemplateSelectorOverridesT<D>, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2T<D>
    {
        using composable = DataTemplateSelector;
    protected:
        DataTemplateSelectorT()
        {
            impl::call_factory<DataTemplateSelector, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IDataTemplateSelector>::SelectTemplate;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IDataTemplateSelector2>::SelectTemplate;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>::SelectTemplateCore;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>::SelectTemplateCore;
    };
    template <typename D, typename... Interfaces>
    struct DatePickerT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IDatePicker, Windows::UI::Xaml::Controls::IDatePicker2, Windows::UI::Xaml::Controls::IDatePicker3, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, DatePicker, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = DatePicker;
    protected:
        DatePickerT()
        {
            impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct DropDownButtonT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IDropDownButton, Windows::UI::Xaml::Controls::IButton, Windows::UI::Xaml::Controls::IButtonWithFlyout, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, DropDownButton, Windows::UI::Xaml::Controls::Button, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = DropDownButton;
    protected:
        DropDownButtonT()
        {
            impl::call_factory<DropDownButton, Windows::UI::Xaml::Controls::IDropDownButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct DropDownButtonAutomationPeerT :
        implements<D, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer, Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, Windows::UI::Xaml::Automation::Peers::IButtonAutomationPeer, Windows::UI::Xaml::Automation::Provider::IInvokeProvider, Windows::UI::Xaml::Automation::Peers::IButtonBaseAutomationPeer, Windows::UI::Xaml::Automation::Peers::IFrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Peers::IAutomationPeer, Windows::UI::Xaml::Automation::Peers::IAutomationPeer2, Windows::UI::Xaml::Automation::Peers::IAutomationPeer3, Windows::UI::Xaml::Automation::Peers::IAutomationPeer4, Windows::UI::Xaml::Automation::Peers::IAutomationPeer5, Windows::UI::Xaml::Automation::Peers::IAutomationPeer6, Windows::UI::Xaml::Automation::Peers::IAutomationPeer7, Windows::UI::Xaml::Automation::Peers::IAutomationPeer8, Windows::UI::Xaml::Automation::Peers::IAutomationPeer9, Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, DropDownButtonAutomationPeer, Windows::UI::Xaml::Automation::Peers::ButtonAutomationPeer, Windows::UI::Xaml::Automation::Peers::ButtonBaseAutomationPeer, Windows::UI::Xaml::Automation::Peers::FrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Peers::AutomationPeer, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverridesT<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9T<D>
    {
        using composable = DropDownButtonAutomationPeer;
    protected:
        DropDownButtonAutomationPeerT(Windows::UI::Xaml::Controls::DropDownButton const& owner)
        {
            impl::call_factory<DropDownButtonAutomationPeer, Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory>([&](auto&& f) { f.CreateInstance(owner, *this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FlipViewT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IFlipView, Windows::UI::Xaml::Controls::IFlipView2, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, FlipView, Windows::UI::Xaml::Controls::Primitives::Selector, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = FlipView;
    protected:
        FlipViewT()
        {
            impl::call_factory<FlipView, Windows::UI::Xaml::Controls::IFlipViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FlipViewItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IFlipViewItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, FlipViewItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = FlipViewItem;
    protected:
        FlipViewItemT()
        {
            impl::call_factory<FlipViewItem, Windows::UI::Xaml::Controls::IFlipViewItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FlyoutT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IFlyout, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Flyout, Windows::UI::Xaml::Controls::Primitives::FlyoutBase, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = Flyout;
    protected:
        FlyoutT()
        {
            impl::call_factory<Flyout, Windows::UI::Xaml::Controls::IFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct FlyoutPresenterT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IFlyoutPresenter, Windows::UI::Xaml::Controls::IFlyoutPresenter2, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, FlyoutPresenter, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = FlyoutPresenter;
    protected:
        FlyoutPresenterT()
        {
            impl::call_factory<FlyoutPresenter, Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FontIconT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IFontIcon, Windows::UI::Xaml::Controls::IFontIcon2, Windows::UI::Xaml::Controls::IFontIcon3, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, FontIcon, Windows::UI::Xaml::Controls::IconElement, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = FontIcon;
    protected:
        FontIconT()
        {
            impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FontIconSourceT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IFontIconSource, Windows::UI::Xaml::Controls::IIconSource, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, FontIconSource, Windows::UI::Xaml::Controls::IconSource, Windows::UI::Xaml::DependencyObject>
    {
        using composable = FontIconSource;
    protected:
        FontIconSourceT()
        {
            impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FrameT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IFrame, Windows::UI::Xaml::Controls::IFrame2, Windows::UI::Xaml::Controls::IFrame3, Windows::UI::Xaml::Controls::IFrame4, Windows::UI::Xaml::Controls::IFrame5, Windows::UI::Xaml::Controls::INavigate, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Frame, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Frame;
    protected:
        FrameT()
        {
            impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IFrame>::GoBack;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IFrame3>::GoBack;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IFrame>::Navigate;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IFrame2>::Navigate;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::INavigate>::Navigate;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IFrame>::SetNavigationState;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IFrame4>::SetNavigationState;
    };
    template <typename D, typename... Interfaces>
    struct GridT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IGrid, Windows::UI::Xaml::Controls::IGrid2, Windows::UI::Xaml::Controls::IGrid3, Windows::UI::Xaml::Controls::IGrid4, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Grid, Windows::UI::Xaml::Controls::Panel, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Grid;
    protected:
        GridT()
        {
            impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GridViewT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IGridView, Windows::UI::Xaml::Controls::IListViewBase, Windows::UI::Xaml::Controls::IListViewBase2, Windows::UI::Xaml::Controls::IListViewBase3, Windows::UI::Xaml::Controls::IListViewBase4, Windows::UI::Xaml::Controls::IListViewBase5, Windows::UI::Xaml::Controls::IListViewBase6, Windows::UI::Xaml::Controls::ISemanticZoomInformation, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, GridView, Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::Primitives::Selector, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = GridView;
    protected:
        GridViewT()
        {
            impl::call_factory<GridView, Windows::UI::Xaml::Controls::IGridViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GridViewHeaderItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IGridViewHeaderItem, Windows::UI::Xaml::Controls::IListViewBaseHeaderItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, GridViewHeaderItem, Windows::UI::Xaml::Controls::ListViewBaseHeaderItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = GridViewHeaderItem;
    protected:
        GridViewHeaderItemT()
        {
            impl::call_factory<GridViewHeaderItem, Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GridViewItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IGridViewItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, GridViewItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = GridViewItem;
    protected:
        GridViewItemT()
        {
            impl::call_factory<GridViewItem, Windows::UI::Xaml::Controls::IGridViewItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GroupItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IGroupItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, GroupItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = GroupItem;
    protected:
        GroupItemT()
        {
            impl::call_factory<GroupItem, Windows::UI::Xaml::Controls::IGroupItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GroupStyleT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IGroupStyle, Windows::UI::Xaml::Controls::IGroupStyle2, Windows::UI::Xaml::Data::INotifyPropertyChanged>,
        impl::base<D, GroupStyle>
    {
        using composable = GroupStyle;
    protected:
        GroupStyleT()
        {
            impl::call_factory<GroupStyle, Windows::UI::Xaml::Controls::IGroupStyleFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GroupStyleSelectorT :
        implements<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IGroupStyleSelector>,
        impl::base<D, GroupStyleSelector>,
        Windows::UI::Xaml::Controls::IGroupStyleSelectorOverridesT<D>
    {
        using composable = GroupStyleSelector;
    protected:
        GroupStyleSelectorT()
        {
            impl::call_factory<GroupStyleSelector, Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct HandwritingViewT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IHandwritingView, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, HandwritingView, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = HandwritingView;
    protected:
        HandwritingViewT()
        {
            impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct HubT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IHub, Windows::UI::Xaml::Controls::ISemanticZoomInformation, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Hub, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Hub;
    protected:
        HubT()
        {
            impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct HubSectionT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IHubSection, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, HubSection, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = HubSection;
    protected:
        HubSectionT()
        {
            impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct HyperlinkButtonT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IHyperlinkButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, HyperlinkButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = HyperlinkButton;
    protected:
        HyperlinkButtonT()
        {
            impl::call_factory<HyperlinkButton, Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct IconSourceElementT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IIconSourceElement, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, IconSourceElement, Windows::UI::Xaml::Controls::IconElement, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = IconSourceElement;
    protected:
        IconSourceElementT()
        {
            impl::call_factory<IconSourceElement, Windows::UI::Xaml::Controls::IIconSourceElementFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkCanvasT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkCanvas, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkCanvas, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkCanvas;
    protected:
        InkCanvasT()
        {
            impl::call_factory<InkCanvas, Windows::UI::Xaml::Controls::IInkCanvasFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbar, Windows::UI::Xaml::Controls::IInkToolbar2, Windows::UI::Xaml::Controls::IInkToolbar3, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbar, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbar;
    protected:
        InkToolbarT()
        {
            impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarBallpointPenButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarBallpointPenButton, Windows::UI::Xaml::Controls::InkToolbarPenButton, Windows::UI::Xaml::Controls::InkToolbarToolButton, Windows::UI::Xaml::Controls::RadioButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarBallpointPenButton;
    protected:
        InkToolbarBallpointPenButtonT()
        {
            impl::call_factory<InkToolbarBallpointPenButton, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarCustomPenT :
        implements<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPen, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarCustomPen, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverridesT<D>
    {
        using composable = InkToolbarCustomPen;
    protected:
        InkToolbarCustomPenT()
        {
            impl::call_factory<InkToolbarCustomPen, Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarCustomPenButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::InkToolbarPenButton, Windows::UI::Xaml::Controls::InkToolbarToolButton, Windows::UI::Xaml::Controls::RadioButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarCustomPenButton;
    protected:
        InkToolbarCustomPenButtonT()
        {
            impl::call_factory<InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarCustomToggleButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton, Windows::UI::Xaml::Controls::IInkToolbarToggleButton, Windows::UI::Xaml::Controls::ICheckBox, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarCustomToggleButton, Windows::UI::Xaml::Controls::InkToolbarToggleButton, Windows::UI::Xaml::Controls::CheckBox, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarCustomToggleButton;
    protected:
        InkToolbarCustomToggleButtonT()
        {
            impl::call_factory<InkToolbarCustomToggleButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarCustomToolButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarCustomToolButton, Windows::UI::Xaml::Controls::InkToolbarToolButton, Windows::UI::Xaml::Controls::RadioButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarCustomToolButton;
    protected:
        InkToolbarCustomToolButtonT()
        {
            impl::call_factory<InkToolbarCustomToolButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarEraserButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButton, Windows::UI::Xaml::Controls::IInkToolbarEraserButton2, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarEraserButton, Windows::UI::Xaml::Controls::InkToolbarToolButton, Windows::UI::Xaml::Controls::RadioButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarEraserButton;
    protected:
        InkToolbarEraserButtonT()
        {
            impl::call_factory<InkToolbarEraserButton, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarFlyoutItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarFlyoutItem;
    protected:
        InkToolbarFlyoutItemT()
        {
            impl::call_factory<InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarHighlighterButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton, Windows::UI::Xaml::Controls::IInkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarHighlighterButton, Windows::UI::Xaml::Controls::InkToolbarPenButton, Windows::UI::Xaml::Controls::InkToolbarToolButton, Windows::UI::Xaml::Controls::RadioButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarHighlighterButton;
    protected:
        InkToolbarHighlighterButtonT()
        {
            impl::call_factory<InkToolbarHighlighterButton, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarPenConfigurationControlT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarPenConfigurationControl;
    protected:
        InkToolbarPenConfigurationControlT()
        {
            impl::call_factory<InkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarPencilButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarPencilButton, Windows::UI::Xaml::Controls::IInkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarPencilButton, Windows::UI::Xaml::Controls::InkToolbarPenButton, Windows::UI::Xaml::Controls::InkToolbarToolButton, Windows::UI::Xaml::Controls::RadioButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarPencilButton;
    protected:
        InkToolbarPencilButtonT()
        {
            impl::call_factory<InkToolbarPencilButton, Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarRulerButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButton, Windows::UI::Xaml::Controls::IInkToolbarToggleButton, Windows::UI::Xaml::Controls::ICheckBox, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarRulerButton, Windows::UI::Xaml::Controls::InkToolbarToggleButton, Windows::UI::Xaml::Controls::CheckBox, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarRulerButton;
    protected:
        InkToolbarRulerButtonT()
        {
            impl::call_factory<InkToolbarRulerButton, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarStencilButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarMenuButton, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarStencilButton, Windows::UI::Xaml::Controls::InkToolbarMenuButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarStencilButton;
    protected:
        InkToolbarStencilButtonT()
        {
            impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ItemsControlT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ItemsControl;
    protected:
        ItemsControlT()
        {
            impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListBoxT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IListBox, Windows::UI::Xaml::Controls::IListBox2, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ListBox, Windows::UI::Xaml::Controls::Primitives::Selector, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListBox;
    protected:
        ListBoxT()
        {
            impl::call_factory<ListBox, Windows::UI::Xaml::Controls::IListBoxFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListBoxItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IListBoxItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ListBoxItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListBoxItem;
    protected:
        ListBoxItemT()
        {
            impl::call_factory<ListBoxItem, Windows::UI::Xaml::Controls::IListBoxItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListViewT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IListView, Windows::UI::Xaml::Controls::IListViewBase, Windows::UI::Xaml::Controls::IListViewBase2, Windows::UI::Xaml::Controls::IListViewBase3, Windows::UI::Xaml::Controls::IListViewBase4, Windows::UI::Xaml::Controls::IListViewBase5, Windows::UI::Xaml::Controls::IListViewBase6, Windows::UI::Xaml::Controls::ISemanticZoomInformation, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ListView, Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::Primitives::Selector, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListView;
    protected:
        ListViewT()
        {
            impl::call_factory<ListView, Windows::UI::Xaml::Controls::IListViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListViewBaseT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IListViewBase, Windows::UI::Xaml::Controls::IListViewBase2, Windows::UI::Xaml::Controls::IListViewBase3, Windows::UI::Xaml::Controls::IListViewBase4, Windows::UI::Xaml::Controls::IListViewBase5, Windows::UI::Xaml::Controls::IListViewBase6, Windows::UI::Xaml::Controls::ISemanticZoomInformation, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ListViewBase, Windows::UI::Xaml::Controls::Primitives::Selector, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListViewBase;
    protected:
        ListViewBaseT()
        {
            impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListViewHeaderItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IListViewHeaderItem, Windows::UI::Xaml::Controls::IListViewBaseHeaderItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ListViewHeaderItem, Windows::UI::Xaml::Controls::ListViewBaseHeaderItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListViewHeaderItem;
    protected:
        ListViewHeaderItemT()
        {
            impl::call_factory<ListViewHeaderItem, Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListViewItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IListViewItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ListViewItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListViewItem;
    protected:
        ListViewItemT()
        {
            impl::call_factory<ListViewItem, Windows::UI::Xaml::Controls::IListViewItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MediaPlayerElementT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMediaPlayerElement, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MediaPlayerElement, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MediaPlayerElement;
    protected:
        MediaPlayerElementT()
        {
            impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MediaPlayerPresenterT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenter, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MediaPlayerPresenter, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MediaPlayerPresenter;
    protected:
        MediaPlayerPresenterT()
        {
            impl::call_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MediaTransportControlsT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControls2, Windows::UI::Xaml::Controls::IMediaTransportControls3, Windows::UI::Xaml::Controls::IMediaTransportControls4, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MediaTransportControls, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MediaTransportControls;
    protected:
        MediaTransportControlsT()
        {
            impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuBarT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMenuBar, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuBar, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuBar;
    protected:
        MenuBarT()
        {
            impl::call_factory<MenuBar, Windows::UI::Xaml::Controls::IMenuBarFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuBarItemT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMenuBarItem, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuBarItem, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuBarItem;
    protected:
        MenuBarItemT()
        {
            impl::call_factory<MenuBarItem, Windows::UI::Xaml::Controls::IMenuBarItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuBarItemFlyoutT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMenuBarItemFlyout, Windows::UI::Xaml::Controls::IMenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyout2, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuBarItemFlyout, Windows::UI::Xaml::Controls::MenuFlyout, Windows::UI::Xaml::Controls::Primitives::FlyoutBase, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = MenuBarItemFlyout;
    protected:
        MenuBarItemFlyoutT()
        {
            impl::call_factory<MenuBarItemFlyout, Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IMenuFlyout2>::ShowAt;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct MenuFlyoutT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyout2, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuFlyout, Windows::UI::Xaml::Controls::Primitives::FlyoutBase, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = MenuFlyout;
    protected:
        MenuFlyoutT()
        {
            impl::call_factory<MenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::IMenuFlyout2>::ShowAt;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct MenuFlyoutItemT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItem2, Windows::UI::Xaml::Controls::IMenuFlyoutItem3, Windows::UI::Xaml::Controls::IMenuFlyoutItemBase, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuFlyoutItem, Windows::UI::Xaml::Controls::MenuFlyoutItemBase, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuFlyoutItem;
    protected:
        MenuFlyoutItemT()
        {
            impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuFlyoutPresenterT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuFlyoutPresenter, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuFlyoutPresenter;
    protected:
        MenuFlyoutPresenterT()
        {
            impl::call_factory<MenuFlyoutPresenter, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuFlyoutSeparatorT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IMenuFlyoutSeparator, Windows::UI::Xaml::Controls::IMenuFlyoutItemBase, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuFlyoutSeparator, Windows::UI::Xaml::Controls::MenuFlyoutItemBase, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuFlyoutSeparator;
    protected:
        MenuFlyoutSeparatorT()
        {
            impl::call_factory<MenuFlyoutSeparator, Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::INavigationView, Windows::UI::Xaml::Controls::INavigationView2, Windows::UI::Xaml::Controls::INavigationView3, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, NavigationView, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationView;
    protected:
        NavigationViewT()
        {
            impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::INavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItem2, Windows::UI::Xaml::Controls::INavigationViewItemBase, Windows::UI::Xaml::Controls::IListViewItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, NavigationViewItem, Windows::UI::Xaml::Controls::NavigationViewItemBase, Windows::UI::Xaml::Controls::ListViewItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationViewItem;
    protected:
        NavigationViewItemT()
        {
            impl::call_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewItemHeaderT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::INavigationViewItemHeader, Windows::UI::Xaml::Controls::INavigationViewItemBase, Windows::UI::Xaml::Controls::IListViewItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, NavigationViewItemHeader, Windows::UI::Xaml::Controls::NavigationViewItemBase, Windows::UI::Xaml::Controls::ListViewItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationViewItemHeader;
    protected:
        NavigationViewItemHeaderT()
        {
            impl::call_factory<NavigationViewItemHeader, Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewItemSeparatorT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::INavigationViewItemSeparator, Windows::UI::Xaml::Controls::INavigationViewItemBase, Windows::UI::Xaml::Controls::IListViewItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, NavigationViewItemSeparator, Windows::UI::Xaml::Controls::NavigationViewItemBase, Windows::UI::Xaml::Controls::ListViewItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationViewItemSeparator;
    protected:
        NavigationViewItemSeparatorT()
        {
            impl::call_factory<NavigationViewItemSeparator, Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewListT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::INavigationViewList, Windows::UI::Xaml::Controls::IListView, Windows::UI::Xaml::Controls::IListViewBase, Windows::UI::Xaml::Controls::IListViewBase2, Windows::UI::Xaml::Controls::IListViewBase3, Windows::UI::Xaml::Controls::IListViewBase4, Windows::UI::Xaml::Controls::IListViewBase5, Windows::UI::Xaml::Controls::IListViewBase6, Windows::UI::Xaml::Controls::ISemanticZoomInformation, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, NavigationViewList, Windows::UI::Xaml::Controls::ListView, Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::Primitives::Selector, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationViewList;
    protected:
        NavigationViewListT()
        {
            impl::call_factory<NavigationViewList, Windows::UI::Xaml::Controls::INavigationViewListFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewTemplateSettingsT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, NavigationViewTemplateSettings, Windows::UI::Xaml::DependencyObject>
    {
        using composable = NavigationViewTemplateSettings;
    protected:
        NavigationViewTemplateSettingsT()
        {
            impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PageT :
        implements<D, Windows::UI::Xaml::Controls::IPageOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IPage, Windows::UI::Xaml::Controls::IUserControl, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Page, Windows::UI::Xaml::Controls::UserControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IPageOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Page;
    protected:
        PageT()
        {
            impl::call_factory<Page, Windows::UI::Xaml::Controls::IPageFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PanelT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Panel, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Panel;
    protected:
        PanelT()
        {
            impl::call_factory<Panel, Windows::UI::Xaml::Controls::IPanelFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ParallaxViewT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IParallaxView, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ParallaxView, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ParallaxView;
    protected:
        ParallaxViewT()
        {
            impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PathIconT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IPathIcon, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, PathIcon, Windows::UI::Xaml::Controls::IconElement, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = PathIcon;
    protected:
        PathIconT()
        {
            impl::call_factory<PathIcon, Windows::UI::Xaml::Controls::IPathIconFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PathIconSourceT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IPathIconSource, Windows::UI::Xaml::Controls::IIconSource, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, PathIconSource, Windows::UI::Xaml::Controls::IconSource, Windows::UI::Xaml::DependencyObject>
    {
        using composable = PathIconSource;
    protected:
        PathIconSourceT()
        {
            impl::call_factory<PathIconSource, Windows::UI::Xaml::Controls::IPathIconSourceFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PersonPictureT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IPersonPicture, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, PersonPicture, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = PersonPicture;
    protected:
        PersonPictureT()
        {
            impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PivotT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IPivot, Windows::UI::Xaml::Controls::IPivot2, Windows::UI::Xaml::Controls::IPivot3, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Pivot, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Pivot;
    protected:
        PivotT()
        {
            impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PivotItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IPivotItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, PivotItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = PivotItem;
    protected:
        PivotItemT()
        {
            impl::call_factory<PivotItem, Windows::UI::Xaml::Controls::IPivotItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ProgressBarT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IProgressBar, Windows::UI::Xaml::Controls::Primitives::IRangeBase, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ProgressBar, Windows::UI::Xaml::Controls::Primitives::RangeBase, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ProgressBar;
    protected:
        ProgressBarT()
        {
            impl::call_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RadioButtonT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RadioButton, Windows::UI::Xaml::Controls::Primitives::ToggleButton, Windows::UI::Xaml::Controls::Primitives::ButtonBase, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RadioButton;
    protected:
        RadioButtonT()
        {
            impl::call_factory<RadioButton, Windows::UI::Xaml::Controls::IRadioButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RatingControlT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRatingControl, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RatingControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RatingControl;
    protected:
        RatingControlT()
        {
            impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RatingItemFontInfoT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemInfo, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RatingItemFontInfo, Windows::UI::Xaml::Controls::RatingItemInfo, Windows::UI::Xaml::DependencyObject>
    {
        using composable = RatingItemFontInfo;
    protected:
        RatingItemFontInfoT()
        {
            impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RatingItemImageInfoT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemInfo, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RatingItemImageInfo, Windows::UI::Xaml::Controls::RatingItemInfo, Windows::UI::Xaml::DependencyObject>
    {
        using composable = RatingItemImageInfo;
    protected:
        RatingItemImageInfoT()
        {
            impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RatingItemInfoT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRatingItemInfo, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RatingItemInfo, Windows::UI::Xaml::DependencyObject>
    {
        using composable = RatingItemInfo;
    protected:
        RatingItemInfoT()
        {
            impl::call_factory<RatingItemInfo, Windows::UI::Xaml::Controls::IRatingItemInfoFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RefreshContainerT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRefreshContainer, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RefreshContainer, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RefreshContainer;
    protected:
        RefreshContainerT()
        {
            impl::call_factory<RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RefreshVisualizerT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRefreshVisualizer, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RefreshVisualizer, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RefreshVisualizer;
    protected:
        RefreshVisualizerT()
        {
            impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RelativePanelT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRelativePanel, Windows::UI::Xaml::Controls::IRelativePanel2, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RelativePanel, Windows::UI::Xaml::Controls::Panel, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RelativePanel;
    protected:
        RelativePanelT()
        {
            impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RichEditBoxT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IRichEditBox, Windows::UI::Xaml::Controls::IRichEditBox2, Windows::UI::Xaml::Controls::IRichEditBox3, Windows::UI::Xaml::Controls::IRichEditBox4, Windows::UI::Xaml::Controls::IRichEditBox5, Windows::UI::Xaml::Controls::IRichEditBox6, Windows::UI::Xaml::Controls::IRichEditBox7, Windows::UI::Xaml::Controls::IRichEditBox8, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RichEditBox, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RichEditBox;
    protected:
        RichEditBoxT()
        {
            impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SearchBoxT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISearchBox, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SearchBox, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SearchBox;
    protected:
        SearchBoxT()
        {
            impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SelectionChangedEventArgsT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISelectionChangedEventArgs, Windows::UI::Xaml::IRoutedEventArgs>,
        impl::base<D, SelectionChangedEventArgs, Windows::UI::Xaml::RoutedEventArgs>
    {
        using composable = SelectionChangedEventArgs;
    protected:
        SelectionChangedEventArgsT(param::vector<Windows::Foundation::IInspectable> const& removedItems, param::vector<Windows::Foundation::IInspectable> const& addedItems)
        {
            impl::call_factory<SelectionChangedEventArgs, Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>([&](auto&& f) { f.CreateInstanceWithRemovedItemsAndAddedItems(removedItems, addedItems, *this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SettingsFlyoutT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISettingsFlyout, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SettingsFlyout, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SettingsFlyout;
    protected:
        SettingsFlyoutT()
        {
            impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SliderT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISlider, Windows::UI::Xaml::Controls::ISlider2, Windows::UI::Xaml::Controls::Primitives::IRangeBase, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Slider, Windows::UI::Xaml::Controls::Primitives::RangeBase, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Slider;
    protected:
        SliderT()
        {
            impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SplitButtonT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISplitButton, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SplitButton, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SplitButton;
    protected:
        SplitButtonT()
        {
            impl::call_factory<SplitButton, Windows::UI::Xaml::Controls::ISplitButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SplitButtonAutomationPeerT :
        implements<D, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer, Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, Windows::UI::Xaml::Automation::Provider::IInvokeProvider, Windows::UI::Xaml::Automation::Peers::IFrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Peers::IAutomationPeer, Windows::UI::Xaml::Automation::Peers::IAutomationPeer2, Windows::UI::Xaml::Automation::Peers::IAutomationPeer3, Windows::UI::Xaml::Automation::Peers::IAutomationPeer4, Windows::UI::Xaml::Automation::Peers::IAutomationPeer5, Windows::UI::Xaml::Automation::Peers::IAutomationPeer6, Windows::UI::Xaml::Automation::Peers::IAutomationPeer7, Windows::UI::Xaml::Automation::Peers::IAutomationPeer8, Windows::UI::Xaml::Automation::Peers::IAutomationPeer9, Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SplitButtonAutomationPeer, Windows::UI::Xaml::Automation::Peers::FrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Peers::AutomationPeer, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverridesT<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9T<D>
    {
        using composable = SplitButtonAutomationPeer;
    protected:
        SplitButtonAutomationPeerT(Windows::UI::Xaml::Controls::SplitButton const& owner)
        {
            impl::call_factory<SplitButtonAutomationPeer, Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory>([&](auto&& f) { f.CreateInstance(owner, *this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SplitViewT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISplitView, Windows::UI::Xaml::Controls::ISplitView2, Windows::UI::Xaml::Controls::ISplitView3, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SplitView, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SplitView;
    protected:
        SplitViewT()
        {
            impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct StackPanelT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IStackPanel, Windows::UI::Xaml::Controls::IStackPanel2, Windows::UI::Xaml::Controls::IStackPanel4, Windows::UI::Xaml::Controls::IStackPanel5, Windows::UI::Xaml::Controls::Primitives::IScrollSnapPointsInfo, Windows::UI::Xaml::Controls::IInsertionPanel, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, StackPanel, Windows::UI::Xaml::Controls::Panel, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = StackPanel;
    protected:
        StackPanelT()
        {
            impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct StyleSelectorT :
        implements<D, Windows::UI::Xaml::Controls::IStyleSelectorOverrides, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IStyleSelector>,
        impl::base<D, StyleSelector>,
        Windows::UI::Xaml::Controls::IStyleSelectorOverridesT<D>
    {
        using composable = StyleSelector;
    protected:
        StyleSelectorT()
        {
            impl::call_factory<StyleSelector, Windows::UI::Xaml::Controls::IStyleSelectorFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwapChainBackgroundPanelT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2, Windows::UI::Xaml::Controls::IGrid, Windows::UI::Xaml::Controls::IGrid2, Windows::UI::Xaml::Controls::IGrid3, Windows::UI::Xaml::Controls::IGrid4, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SwapChainBackgroundPanel, Windows::UI::Xaml::Controls::Grid, Windows::UI::Xaml::Controls::Panel, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SwapChainBackgroundPanel;
    protected:
        SwapChainBackgroundPanelT()
        {
            impl::call_factory<SwapChainBackgroundPanel, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwapChainPanelT :
        implements<D, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISwapChainPanel, Windows::UI::Xaml::Controls::IGrid, Windows::UI::Xaml::Controls::IGrid2, Windows::UI::Xaml::Controls::IGrid3, Windows::UI::Xaml::Controls::IGrid4, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SwapChainPanel, Windows::UI::Xaml::Controls::Grid, Windows::UI::Xaml::Controls::Panel, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SwapChainPanel;
    protected:
        SwapChainPanelT()
        {
            impl::call_factory<SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwipeControlT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISwipeControl, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SwipeControl, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SwipeControl;
    protected:
        SwipeControlT()
        {
            impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwipeItemT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISwipeItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SwipeItem, Windows::UI::Xaml::DependencyObject>
    {
        using composable = SwipeItem;
    protected:
        SwipeItemT()
        {
            impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwipeItemsT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISwipeItems, Windows::Foundation::Collections::IIterable<Windows::UI::Xaml::Controls::SwipeItem>, Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::SwipeItem>, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SwipeItems, Windows::UI::Xaml::DependencyObject>
    {
        using composable = SwipeItems;
    protected:
        SwipeItemsT()
        {
            impl::call_factory<SwipeItems, Windows::UI::Xaml::Controls::ISwipeItemsFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SymbolIconSourceT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ISymbolIconSource, Windows::UI::Xaml::Controls::IIconSource, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SymbolIconSource, Windows::UI::Xaml::Controls::IconSource, Windows::UI::Xaml::DependencyObject>
    {
        using composable = SymbolIconSource;
    protected:
        SymbolIconSourceT()
        {
            impl::call_factory<SymbolIconSource, Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TextBoxT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITextBox, Windows::UI::Xaml::Controls::ITextBox2, Windows::UI::Xaml::Controls::ITextBox3, Windows::UI::Xaml::Controls::ITextBox4, Windows::UI::Xaml::Controls::ITextBox5, Windows::UI::Xaml::Controls::ITextBox6, Windows::UI::Xaml::Controls::ITextBox7, Windows::UI::Xaml::Controls::ITextBox8, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TextBox, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TextBox;
    protected:
        TextBoxT()
        {
            impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TextCommandBarFlyoutT :
        implements<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITextCommandBarFlyout, Windows::UI::Xaml::Controls::ICommandBarFlyout, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TextCommandBarFlyout, Windows::UI::Xaml::Controls::CommandBarFlyout, Windows::UI::Xaml::Controls::Primitives::FlyoutBase, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = TextCommandBarFlyout;
    protected:
        TextCommandBarFlyoutT()
        {
            impl::call_factory<TextCommandBarFlyout, Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct TimePickerT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITimePicker, Windows::UI::Xaml::Controls::ITimePicker2, Windows::UI::Xaml::Controls::ITimePicker3, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TimePicker, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TimePicker;
    protected:
        TimePickerT()
        {
            impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ToggleMenuFlyoutItemT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItem2, Windows::UI::Xaml::Controls::IMenuFlyoutItem3, Windows::UI::Xaml::Controls::IMenuFlyoutItemBase, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ToggleMenuFlyoutItem, Windows::UI::Xaml::Controls::MenuFlyoutItem, Windows::UI::Xaml::Controls::MenuFlyoutItemBase, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ToggleMenuFlyoutItem;
    protected:
        ToggleMenuFlyoutItemT()
        {
            impl::call_factory<ToggleMenuFlyoutItem, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ToggleSplitButtonT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IToggleSplitButton, Windows::UI::Xaml::Controls::ISplitButton, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ToggleSplitButton, Windows::UI::Xaml::Controls::SplitButton, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ToggleSplitButton;
    protected:
        ToggleSplitButtonT()
        {
            impl::call_factory<ToggleSplitButton, Windows::UI::Xaml::Controls::IToggleSplitButtonFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ToggleSplitButtonAutomationPeerT :
        implements<D, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer, Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, Windows::UI::Xaml::Automation::Provider::IToggleProvider, Windows::UI::Xaml::Automation::Peers::IFrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Peers::IAutomationPeer, Windows::UI::Xaml::Automation::Peers::IAutomationPeer2, Windows::UI::Xaml::Automation::Peers::IAutomationPeer3, Windows::UI::Xaml::Automation::Peers::IAutomationPeer4, Windows::UI::Xaml::Automation::Peers::IAutomationPeer5, Windows::UI::Xaml::Automation::Peers::IAutomationPeer6, Windows::UI::Xaml::Automation::Peers::IAutomationPeer7, Windows::UI::Xaml::Automation::Peers::IAutomationPeer8, Windows::UI::Xaml::Automation::Peers::IAutomationPeer9, Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ToggleSplitButtonAutomationPeer, Windows::UI::Xaml::Automation::Peers::FrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Peers::AutomationPeer, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverridesT<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8T<D>, Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9T<D>
    {
        using composable = ToggleSplitButtonAutomationPeer;
    protected:
        ToggleSplitButtonAutomationPeerT(Windows::UI::Xaml::Controls::ToggleSplitButton const& owner)
        {
            impl::call_factory<ToggleSplitButtonAutomationPeer, Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory>([&](auto&& f) { f.CreateInstance(owner, *this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ToolTipT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IToolTip, Windows::UI::Xaml::Controls::IToolTip2, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, ToolTip, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ToolTip;
    protected:
        ToolTipT()
        {
            impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITreeView, Windows::UI::Xaml::Controls::ITreeView2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TreeView, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TreeView;
    protected:
        TreeViewT()
        {
            impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewItemT :
        implements<D, Windows::UI::Xaml::Controls::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItem2, Windows::UI::Xaml::Controls::IListViewItem, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TreeViewItem, Windows::UI::Xaml::Controls::ListViewItem, Windows::UI::Xaml::Controls::Primitives::SelectorItem, Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TreeViewItem;
    protected:
        TreeViewItemT()
        {
            impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewItemTemplateSettingsT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TreeViewItemTemplateSettings, Windows::UI::Xaml::DependencyObject>
    {
        using composable = TreeViewItemTemplateSettings;
    protected:
        TreeViewItemTemplateSettingsT()
        {
            impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewListT :
        implements<D, Windows::UI::Xaml::Controls::IItemsControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITreeViewList, Windows::UI::Xaml::Controls::IListView, Windows::UI::Xaml::Controls::IListViewBase, Windows::UI::Xaml::Controls::IListViewBase2, Windows::UI::Xaml::Controls::IListViewBase3, Windows::UI::Xaml::Controls::IListViewBase4, Windows::UI::Xaml::Controls::IListViewBase5, Windows::UI::Xaml::Controls::IListViewBase6, Windows::UI::Xaml::Controls::ISemanticZoomInformation, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TreeViewList, Windows::UI::Xaml::Controls::ListView, Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::Primitives::Selector, Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TreeViewList;
    protected:
        TreeViewListT()
        {
            impl::call_factory<TreeViewList, Windows::UI::Xaml::Controls::ITreeViewListFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewNodeT :
        implements<D, Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITreeViewNode, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TreeViewNode, Windows::UI::Xaml::DependencyObject>
    {
        using composable = TreeViewNode;
    protected:
        TreeViewNodeT()
        {
            impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TwoPaneViewT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::ITwoPaneView, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TwoPaneView, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TwoPaneView;
    protected:
        TwoPaneViewT()
        {
            impl::call_factory<TwoPaneView, Windows::UI::Xaml::Controls::ITwoPaneViewFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct UserControlT :
        implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::IFrameworkElementOverrides, Windows::UI::Xaml::IFrameworkElementOverrides2, Windows::UI::Xaml::IUIElementOverrides, Windows::UI::Xaml::IUIElementOverrides7, Windows::UI::Xaml::IUIElementOverrides8, Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, Windows::UI::Xaml::Controls::IUserControl, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::IControl7, Windows::UI::Xaml::Controls::IControlProtected, Windows::UI::Xaml::IFrameworkElement, Windows::UI::Xaml::IFrameworkElement2, Windows::UI::Xaml::IFrameworkElement3, Windows::UI::Xaml::IFrameworkElement4, Windows::UI::Xaml::IFrameworkElement6, Windows::UI::Xaml::IFrameworkElement7, Windows::UI::Xaml::IFrameworkElementProtected7, Windows::UI::Xaml::IUIElement, Windows::UI::Xaml::IUIElement2, Windows::UI::Xaml::IUIElement3, Windows::UI::Xaml::IUIElement4, Windows::UI::Xaml::IUIElement5, Windows::UI::Xaml::IUIElement7, Windows::UI::Xaml::IUIElement8, Windows::UI::Xaml::IUIElement9, Windows::UI::Xaml::IUIElement10, Windows::UI::Composition::IAnimationObject, Windows::UI::Composition::IVisualElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, UserControl, Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::FrameworkElement, Windows::UI::Xaml::UIElement, Windows::UI::Xaml::DependencyObject>,
        Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>, Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = UserControl;
    protected:
        UserControlT()
        {
            impl::call_factory<UserControl, Windows::UI::Xaml::Controls::IUserControlFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
        }
    };
}
namespace std
{
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBar2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBar2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBar3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBar3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBar4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBar4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButton3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarButton3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButton4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarButton4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButton5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarButton5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarSeparator> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarSeparator> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIcon> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBitmapIcon> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBorder> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBorder> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBorder2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBorder2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBorderStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBorderStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBorderStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBorderStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICanvas> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICanvas> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICanvasFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICanvasFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICanvasStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICanvasStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICaptureElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICaptureElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICheckBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICheckBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColorPicker> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IColorPicker> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColorPickerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IColorPickerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColumnDefinition> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IColumnDefinition> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBox2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBox3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBox4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBox5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBox6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBar2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBar2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBar3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBar3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControl2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentControl2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControlFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentControlFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControlStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentControlStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialog> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialog> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialog2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialog2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialog3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialog3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogOpenedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogOpenedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenter2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenter3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenter4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenter5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControl2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControl3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControl4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControl5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControl7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlOverrides6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlOverrides6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlProtected> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlProtected> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlStatics7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlTemplate> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IControlTemplate> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePicker> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePicker> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePicker2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePicker2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePicker3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePicker3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDropDownButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDropDownButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlipView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipView2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlipView2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlipViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlipViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlyoutFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFocusDisengagedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFocusDisengagedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIcon> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIcon> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIcon2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIcon2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIcon3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIcon3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIconFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIconStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIconStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFontIconStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrame> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrame2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrame3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrame4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrame5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrameFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrameFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrameStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrameStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrameStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrameStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrameStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFrameStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGrid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGrid> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGrid2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGrid2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGrid3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGrid3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGrid4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGrid4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGroupItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGroupItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyle> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGroupStyle> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyle2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGroupStyle2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingPanelClosedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHandwritingPanelClosedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingPanelOpenedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHandwritingPanelOpenedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHandwritingView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHub> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHub> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHubFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubSection> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHubSection> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubSectionFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHubSectionFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHubStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconElementFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconElementFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconElementStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconElementStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconSourceElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconSourceFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIconSourceStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IImage> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IImage> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IImage2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IImage2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IImage3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IImage3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IImageStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IImageStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkCanvas> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkCanvas> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbar2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbar2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbar3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbar3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInsertionPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IInsertionPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIsTextTrimmedChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IIsTextTrimmedChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControl2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsControl2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControl3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsControl3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControlFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsControlFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPanelTemplate> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsPanelTemplate> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBox2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListBox2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListBoxFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListBoxItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListBoxStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListBoxStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBase> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBase2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBase3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBase4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBase5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBase6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelper> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelper> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElement2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaElement2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElement3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaElement3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelper> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelper> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuBar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuBarFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuBarItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuBarStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyout2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyout2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBase> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBase> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBaseFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBaseFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparator> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparator> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigate> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigate> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationView2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationView2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationView3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationView3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewBackRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewBackRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemBase> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemBase> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemBaseFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemBaseFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeader> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeader> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparator> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparator> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewList> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewList> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPage> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPage> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPageFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPageFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPageOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPageOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPageStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPageStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPanel2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPanel2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPanelFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPanelFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPanelStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPanelStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IParallaxView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IParallaxView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBox2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBox3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBox4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBox5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIcon> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPathIcon> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPathIconFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPathIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPathIconStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPersonPicture> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPersonPicture> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPickerConfirmedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPickerConfirmedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPickerFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPickerFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivot> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivot> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivot2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivot2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivot3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivot3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivotFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivotItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivotItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivotItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivotStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivotStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IPivotStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IProgressBar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressBarFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IProgressBarFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressRing> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IProgressRing> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressRingStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IProgressRingStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRadioButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRadioButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingControlFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingControlFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemInfo> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingItemInfo> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshContainer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshContainer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRelativePanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanel2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRelativePanel2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBox2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBox3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBox4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBox5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBox6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBox7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox8> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBox8> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlock> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRowDefinition> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRowDefinition> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewer2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewer2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewer3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewer3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewer4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewer4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewerView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISearchBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgsFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgsFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoom> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISemanticZoom> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISlider> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISlider> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISlider2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISlider2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISliderFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISliderFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISliderStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISliderStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISliderStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISliderStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitButtonClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitView2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitView2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitView3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitView3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanel2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanel2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanel4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanel4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanel5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanel5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanelFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStyleSelector> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStyleSelector> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItems> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeItems> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIcon> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISymbolIcon> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlock> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlock2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlock3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlock4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlock5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlock6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlock7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBox2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBox3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBox4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBox5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBox6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBox7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox8> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBox8> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePicker> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePicker> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePicker2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePicker2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePicker3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePicker3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonIsCheckedChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonIsCheckedChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSwitch> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleSwitch> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTip> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToolTip> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTip2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToolTip2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToolTipFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipService> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToolTipService> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToolTipStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IToolTipStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeView2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeView2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewList> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewList> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewNode> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewNode> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITwoPaneView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITwoPaneView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IUIElementCollection> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IUIElementCollection> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IUserControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IUserControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IUserControlFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IUserControlFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IUserControlStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IUserControlStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IViewbox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IViewbox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IViewboxStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IViewboxStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelFactory> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebView2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebView3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebView4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebView5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView6> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebView6> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView7> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebView7> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewBrush> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewBrush> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewFactory4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewFactory4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewSeparateProcessLostEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewSeparateProcessLostEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewSettings> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewSettings> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics3> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewStatics3> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWrapGrid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWrapGrid> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AppBar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBarButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AppBarButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBarElementContainer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AppBarElementContainer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBarSeparator> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AppBarSeparator> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBarToggleButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AppBarToggleButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::BackClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::BackClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::BitmapIcon> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::BitmapIcon> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::BitmapIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::BitmapIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Border> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Border> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Button> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Button> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarDatePicker> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CalendarDatePicker> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CalendarView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Canvas> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Canvas> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CaptureElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CaptureElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CheckBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CheckBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ColorChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ColorChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ColorPicker> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ColorPicker> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ColumnDefinition> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ColumnDefinition> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ColumnDefinitionCollection> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ColumnDefinitionCollection> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ComboBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ComboBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ComboBoxItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ComboBoxItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CommandBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CommandBar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CommandBarFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CommandBarFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CommandBarOverflowPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CommandBarOverflowPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialog> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentDialog> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogClosingDeferral> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentDialogClosingDeferral> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContentPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContextMenuEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ContextMenuEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Control> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Control> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ControlTemplate> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ControlTemplate> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DatePickedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePicker> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DatePicker> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DatePickerFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerFlyoutItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DatePickerFlyoutItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DatePickerFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DropDownButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DropDownButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FlipView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::FlipView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FlipViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::FlipViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Flyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Flyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::FlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FocusEngagedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::FocusEngagedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FontIcon> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::FontIcon> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FontIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::FontIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Frame> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Frame> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Grid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Grid> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GridView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::GridView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GridViewHeaderItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::GridViewHeaderItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GridViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::GridViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GroupItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::GroupItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GroupStyle> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::GroupStyle> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GroupStyleSelector> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::GroupStyleSelector> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HandwritingView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::HandwritingView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Hub> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Hub> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HubSection> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::HubSection> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HubSectionCollection> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::HubSectionCollection> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HyperlinkButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::HyperlinkButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IconElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IconElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IconSourceElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IconSourceElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Image> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Image> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkCanvas> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkCanvas> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPenButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPenButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToolButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToolButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarEraserButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarEraserButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarHighlighterButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarHighlighterButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarMenuButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarMenuButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarPencilButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarPencilButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarStencilButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarStencilButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarToggleButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarToggleButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemCollection> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemCollection> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemsControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsPickedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemsPickedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemsPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsStackPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemsStackPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsWrapGrid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ItemsWrapGrid> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListBoxItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListBoxItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListPickerFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListPickerFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListPickerFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListPickerFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewBase> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListViewBase> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewHeaderItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListViewHeaderItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewPersistenceHelper> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ListViewPersistenceHelper> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MediaElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaPlayerElement> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MediaPlayerElement> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaPlayerPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MediaPlayerPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaTransportControls> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MediaTransportControls> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaTransportControlsHelper> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MediaTransportControlsHelper> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuBar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuBarItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuBarItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuBarItemFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuBarItemFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutSeparator> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuFlyoutSeparator> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutSubItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::MenuFlyoutSubItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItemHeader> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewItemHeader> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItemSeparator> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewItemSeparator> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewList> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewList> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewTemplateSettings> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NavigationViewTemplateSettings> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NotifyEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::NotifyEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Page> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Page> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Panel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Panel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ParallaxView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ParallaxView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PasswordBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PasswordBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PathIcon> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PathIcon> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PathIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PathIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PersonPicture> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PersonPicture> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PickerFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PickerFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PickerFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PickerFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Pivot> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Pivot> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PivotItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PivotItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ProgressBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ProgressBar> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ProgressRing> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ProgressRing> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RadioButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RadioButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RatingControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RatingControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RatingItemFontInfo> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RatingItemFontInfo> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RatingItemImageInfo> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RatingItemImageInfo> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RatingItemInfo> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RatingItemInfo> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshContainer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RefreshContainer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshInteractionRatioChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RefreshInteractionRatioChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RelativePanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RelativePanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichEditBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RichEditBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichTextBlock> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RichTextBlock> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RowDefinition> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RowDefinition> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RowDefinitionCollection> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::RowDefinitionCollection> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollContentPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ScrollContentPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollViewer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ScrollViewer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollViewerView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ScrollViewerView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SearchBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SemanticZoom> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SemanticZoom> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SettingsFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SettingsFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Slider> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Slider> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SplitButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitButtonAutomationPeer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SplitButtonAutomationPeer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SplitView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::StackPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::StackPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::StyleSelector> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::StyleSelector> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwapChainBackgroundPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SwapChainBackgroundPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwapChainPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SwapChainPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwipeControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SwipeControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwipeItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SwipeItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwipeItems> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SwipeItems> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SymbolIcon> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SymbolIcon> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SymbolIconSource> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::SymbolIconSource> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBlock> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextBlock> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextBox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextCommandBarFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextCommandBarFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TimePickedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePicker> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TimePicker> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickerFlyout> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TimePickerFlyout> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickerFlyoutPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TimePickerFlyoutPresenter> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleSplitButton> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ToggleSplitButton> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleSwitch> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ToggleSwitch> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToolTip> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ToolTip> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToolTipService> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ToolTipService> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewItem> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewItem> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewList> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewList> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewNode> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TreeViewNode> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TwoPaneView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::TwoPaneView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::UIElementCollection> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::UIElementCollection> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::UserControl> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::UserControl> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::VariableSizedWrapGrid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::VariableSizedWrapGrid> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Viewbox> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::Viewbox> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::VirtualizingPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::VirtualizingPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::VirtualizingStackPanel> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::VirtualizingStackPanel> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebView> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewBrush> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewBrush> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequest> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequest> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewSettings> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewSettings> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WrapGrid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WrapGrid> {};
}
#endif
