﻿// C++/WinRT v1.0.180821.2

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

#pragma once

#include "winrt/base.h"

#include "winrt/Windows.Foundation.h"
#include "winrt/Windows.Foundation.Collections.h"
#include "winrt/impl/Windows.ApplicationModel.Contacts.2.h"
#include "winrt/impl/Windows.ApplicationModel.DataTransfer.2.h"
#include "winrt/impl/Windows.ApplicationModel.Search.2.h"
#include "winrt/impl/Windows.Foundation.2.h"
#include "winrt/impl/Windows.Foundation.Collections.2.h"
#include "winrt/impl/Windows.Globalization.2.h"
#include "winrt/impl/Windows.Media.Capture.2.h"
#include "winrt/impl/Windows.Media.Casting.2.h"
#include "winrt/impl/Windows.Media.Core.2.h"
#include "winrt/impl/Windows.Media.PlayTo.2.h"
#include "winrt/impl/Windows.Media.Playback.2.h"
#include "winrt/impl/Windows.Media.Protection.2.h"
#include "winrt/impl/Windows.Storage.Streams.2.h"
#include "winrt/impl/Windows.System.2.h"
#include "winrt/impl/Windows.UI.2.h"
#include "winrt/impl/Windows.UI.Composition.2.h"
#include "winrt/impl/Windows.UI.Core.2.h"
#include "winrt/impl/Windows.UI.Input.Inking.2.h"
#include "winrt/impl/Windows.UI.Text.2.h"
#include "winrt/impl/Windows.UI.Xaml.2.h"
#include "winrt/impl/Windows.UI.Xaml.Automation.2.h"
#include "winrt/impl/Windows.UI.Xaml.Controls.Primitives.2.h"
#include "winrt/impl/Windows.UI.Xaml.Data.2.h"
#include "winrt/impl/Windows.UI.Xaml.Documents.2.h"
#include "winrt/impl/Windows.UI.Xaml.Input.2.h"
#include "winrt/impl/Windows.UI.Xaml.Interop.2.h"
#include "winrt/impl/Windows.UI.Xaml.Media.2.h"
#include "winrt/impl/Windows.UI.Xaml.Media.Animation.2.h"
#include "winrt/impl/Windows.UI.Xaml.Navigation.2.h"
#include "winrt/impl/Windows.Web.2.h"
#include "winrt/impl/Windows.Web.Http.2.h"
#include "winrt/impl/Windows.Foundation.Collections.2.h"
#include "winrt/impl/Windows.UI.Xaml.Automation.Peers.2.h"
#include "winrt/impl/Windows.UI.Xaml.Automation.Provider.2.h"
#include "winrt/impl/Windows.UI.Xaml.Controls.2.h"
#include "winrt/Windows.UI.Xaml.h"

namespace winrt::impl {

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::Anchor() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs)->get_Anchor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::Anchor(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs)->put_Anchor(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::UIElement> consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::AnchorCandidates() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::UIElement> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs)->get_AnchorCandidates(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsOpen() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->get_IsOpen(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsOpen(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->put_IsOpen(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsSticky() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->get_IsSticky(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsSticky(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->put_IsSticky(value));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->add_Opened(get_abi(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> void consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->remove_Opened(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->add_Closed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->remove_Closed(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::AppBarClosedDisplayMode consume_Windows_UI_Xaml_Controls_IAppBar2<D>::ClosedDisplayMode() const
{
    Windows::UI::Xaml::Controls::AppBarClosedDisplayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar2)->get_ClosedDisplayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBar2<D>::ClosedDisplayMode(Windows::UI::Xaml::Controls::AppBarClosedDisplayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar2)->put_ClosedDisplayMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings consume_Windows_UI_Xaml_Controls_IAppBar3<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->add_Opening(get_abi(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> void consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->remove_Opening(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->add_Closing(get_abi(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> void consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->remove_Closing(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::LightDismissOverlayMode consume_Windows_UI_Xaml_Controls_IAppBar4<D>::LightDismissOverlayMode() const
{
    Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar4)->get_LightDismissOverlayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBar4<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar4)->put_LightDismissOverlayMode(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Label() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton)->get_Label(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Label(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton)->put_Label(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::IconElement consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Icon() const
{
    Windows::UI::Xaml::Controls::IconElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton)->get_Icon(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton)->put_Icon(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::CommandBarLabelPosition consume_Windows_UI_Xaml_Controls_IAppBarButton3<D>::LabelPosition() const
{
    Windows::UI::Xaml::Controls::CommandBarLabelPosition value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton3)->get_LabelPosition(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarButton3<D>::LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton3)->put_LabelPosition(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IAppBarButton4<D>::KeyboardAcceleratorTextOverride() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton4)->get_KeyboardAcceleratorTextOverride(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarButton4<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton4)->put_KeyboardAcceleratorTextOverride(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings consume_Windows_UI_Xaml_Controls_IAppBarButton5<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButton5)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::AppBarButton consume_Windows_UI_Xaml_Controls_IAppBarButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::AppBarButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::LabelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics)->get_LabelProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::IconProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics)->get_IconProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::IsCompactProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics)->get_IsCompactProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::LabelPositionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics3)->get_LabelPositionProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::IsInOverflowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics3)->get_IsInOverflowProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::DynamicOverflowOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics3)->get_DynamicOverflowOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics4<D>::KeyboardAcceleratorTextOverrideProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonStatics4)->get_KeyboardAcceleratorTextOverrideProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::AppBarElementContainer consume_Windows_UI_Xaml_Controls_IAppBarElementContainerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::AppBarElementContainer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarElementContainerFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::IsCompactProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarElementContainerStatics)->get_IsCompactProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::IsInOverflowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarElementContainerStatics)->get_IsInOverflowProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::DynamicOverflowOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarElementContainerStatics)->get_DynamicOverflowOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::AppBar consume_Windows_UI_Xaml_Controls_IAppBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::AppBar value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarOverrides<D>::OnClosed(Windows::Foundation::IInspectable const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarOverrides)->OnClosed(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarOverrides<D>::OnOpened(Windows::Foundation::IInspectable const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarOverrides)->OnOpened(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarOverrides3<D>::OnClosing(Windows::Foundation::IInspectable const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarOverrides3)->OnClosing(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarOverrides3<D>::OnOpening(Windows::Foundation::IInspectable const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarOverrides3)->OnOpening(get_abi(e)));
}

template <typename D> Windows::UI::Xaml::Controls::AppBarSeparator consume_Windows_UI_Xaml_Controls_IAppBarSeparatorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::AppBarSeparator value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics<D>::IsCompactProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorStatics)->get_IsCompactProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics3<D>::IsInOverflowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3)->get_IsInOverflowProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics3<D>::DynamicOverflowOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3)->get_DynamicOverflowOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarStatics<D>::IsOpenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarStatics)->get_IsOpenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarStatics<D>::IsStickyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarStatics)->get_IsStickyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarStatics2<D>::ClosedDisplayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarStatics2)->get_ClosedDisplayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarStatics4<D>::LightDismissOverlayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarStatics4)->get_LightDismissOverlayModeProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Label() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton)->get_Label(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Label(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton)->put_Label(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::IconElement consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Icon() const
{
    Windows::UI::Xaml::Controls::IconElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton)->get_Icon(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton)->put_Icon(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::CommandBarLabelPosition consume_Windows_UI_Xaml_Controls_IAppBarToggleButton3<D>::LabelPosition() const
{
    Windows::UI::Xaml::Controls::CommandBarLabelPosition value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton3)->get_LabelPosition(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarToggleButton3<D>::LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton3)->put_LabelPosition(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IAppBarToggleButton4<D>::KeyboardAcceleratorTextOverride() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton4)->get_KeyboardAcceleratorTextOverride(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBarToggleButton4<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton4)->put_KeyboardAcceleratorTextOverride(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings consume_Windows_UI_Xaml_Controls_IAppBarToggleButton5<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButton5)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::AppBarToggleButton consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::AppBarToggleButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::LabelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics)->get_LabelProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::IconProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics)->get_IconProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::IsCompactProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics)->get_IsCompactProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::LabelPositionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3)->get_LabelPositionProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::IsInOverflowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3)->get_IsInOverflowProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::DynamicOverflowOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3)->get_DynamicOverflowOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics4<D>::KeyboardAcceleratorTextOverrideProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4)->get_KeyboardAcceleratorTextOverrideProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::MaxSuggestionListHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_MaxSuggestionListHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::MaxSuggestionListHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_MaxSuggestionListHeight(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::IsSuggestionListOpen() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_IsSuggestionListOpen(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::IsSuggestionListOpen(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_IsSuggestionListOpen(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextMemberPath() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_TextMemberPath(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextMemberPath(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_TextMemberPath(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Text() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_Text(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Text(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_Text(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::UpdateTextOnSelect() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_UpdateTextOnSelect(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::UpdateTextOnSelect(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_UpdateTextOnSelect(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::PlaceholderText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_PlaceholderText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::PlaceholderText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_PlaceholderText(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_Header(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::AutoMaximizeSuggestionArea() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_AutoMaximizeSuggestionArea(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::AutoMaximizeSuggestionArea(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_AutoMaximizeSuggestionArea(value));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextBoxStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->get_TextBoxStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextBoxStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->put_TextBoxStyle(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->add_SuggestionChosen(get_abi(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> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->remove_SuggestionChosen(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->add_TextChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->remove_TextChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::IconElement consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QueryIcon() const
{
    Windows::UI::Xaml::Controls::IconElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->get_QueryIcon(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QueryIcon(Windows::UI::Xaml::Controls::IconElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->put_QueryIcon(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->add_QuerySubmitted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->remove_QuerySubmitted(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::LightDismissOverlayMode consume_Windows_UI_Xaml_Controls_IAutoSuggestBox3<D>::LightDismissOverlayMode() const
{
    Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox3)->get_LightDismissOverlayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox3<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox3)->put_LightDismissOverlayMode(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IAutoSuggestBox4<D>::Description() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox4)->get_Description(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox4<D>::Description(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox4)->put_Description(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxQuerySubmittedEventArgs<D>::QueryText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs)->get_QueryText(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxQuerySubmittedEventArgs<D>::ChosenSuggestion() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs)->get_ChosenSuggestion(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::MaxSuggestionListHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_MaxSuggestionListHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::IsSuggestionListOpenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_IsSuggestionListOpenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextMemberPathProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_TextMemberPathProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_TextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::UpdateTextOnSelectProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_UpdateTextOnSelectProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::PlaceholderTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_PlaceholderTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::AutoMaximizeSuggestionAreaProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_AutoMaximizeSuggestionAreaProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextBoxStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics)->get_TextBoxStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics2<D>::QueryIconProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2)->get_QueryIconProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics3<D>::LightDismissOverlayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3)->get_LightDismissOverlayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics4<D>::DescriptionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4)->get_DescriptionProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxSuggestionChosenEventArgs<D>::SelectedItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs)->get_SelectedItem(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::Reason() const
{
    Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs)->get_Reason(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::Reason(Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs)->put_Reason(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::CheckCurrent() const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs)->CheckCurrent(&result));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgsStatics<D>::ReasonProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics)->get_ReasonProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IBackClickEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBackClickEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBackClickEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBackClickEventArgs)->put_Handled(value));
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IBitmapIcon<D>::UriSource() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIcon)->get_UriSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBitmapIcon<D>::UriSource(Windows::Foundation::Uri const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIcon)->put_UriSource(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IBitmapIcon2<D>::ShowAsMonochrome() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIcon2)->get_ShowAsMonochrome(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBitmapIcon2<D>::ShowAsMonochrome(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIcon2)->put_ShowAsMonochrome(value));
}

template <typename D> Windows::UI::Xaml::Controls::BitmapIcon consume_Windows_UI_Xaml_Controls_IBitmapIconFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::BitmapIcon value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::UriSource() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSource)->get_UriSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::UriSource(Windows::Foundation::Uri const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSource)->put_UriSource(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::ShowAsMonochrome() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSource)->get_ShowAsMonochrome(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::ShowAsMonochrome(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSource)->put_ShowAsMonochrome(value));
}

template <typename D> Windows::UI::Xaml::Controls::BitmapIconSource consume_Windows_UI_Xaml_Controls_IBitmapIconSourceFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::BitmapIconSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSourceFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBitmapIconSourceStatics<D>::UriSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSourceStatics)->get_UriSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBitmapIconSourceStatics<D>::ShowAsMonochromeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSourceStatics)->get_ShowAsMonochromeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBitmapIconStatics<D>::UriSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconStatics)->get_UriSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBitmapIconStatics2<D>::ShowAsMonochromeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconStatics2)->get_ShowAsMonochromeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_BorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_BorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderThickness() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_BorderThickness(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_BorderThickness(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IBorder<D>::Background() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_Background(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_Background(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::CornerRadius consume_Windows_UI_Xaml_Controls_IBorder<D>::CornerRadius() const
{
    Windows::UI::Xaml::CornerRadius value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_CornerRadius(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_CornerRadius(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IBorder<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_Padding(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IBorder<D>::Child() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_Child(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder<D>::Child(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_Child(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IBorder<D>::ChildTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->get_ChildTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder<D>::ChildTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder)->put_ChildTransitions(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::BackgroundSizing consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundSizing() const
{
    Windows::UI::Xaml::Controls::BackgroundSizing value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder2)->get_BackgroundSizing(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder2)->put_BackgroundSizing(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::BrushTransition consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundTransition() const
{
    Windows::UI::Xaml::BrushTransition value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder2)->get_BackgroundTransition(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundTransition(Windows::UI::Xaml::BrushTransition const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorder2)->put_BackgroundTransition(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_BorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BorderThicknessProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_BorderThicknessProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_BackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::CornerRadiusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_CornerRadiusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::ChildTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorderStatics)->get_ChildTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IBorderStatics2<D>::BackgroundSizingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBorderStatics2)->get_BackgroundSizingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Button consume_Windows_UI_Xaml_Controls_IButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Button value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IButtonStaticsWithFlyout<D>::FlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout)->get_FlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_IButtonWithFlyout<D>::Flyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IButtonWithFlyout)->get_Flyout(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IButtonWithFlyout<D>::Flyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IButtonWithFlyout)->put_Flyout(get_abi(value)));
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Date() const
{
    Windows::Foundation::IReference<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_Date(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Date(optional<Windows::Foundation::DateTime> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_Date(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsCalendarOpen() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_IsCalendarOpen(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsCalendarOpen(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_IsCalendarOpen(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_DateFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_DateFormat(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::PlaceholderText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_PlaceholderText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::PlaceholderText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_PlaceholderText(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_CalendarViewStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_CalendarViewStyle(get_abi(value)));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MinDate() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_MinDate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MinDate(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_MinDate(get_abi(value)));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MaxDate() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_MaxDate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MaxDate(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_MaxDate(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsTodayHighlighted() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_IsTodayHighlighted(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsTodayHighlighted(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_IsTodayHighlighted(value));
}

template <typename D> Windows::UI::Xaml::Controls::CalendarViewDisplayMode consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DisplayMode() const
{
    Windows::UI::Xaml::Controls::CalendarViewDisplayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_DisplayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_DisplayMode(get_abi(value)));
}

template <typename D> Windows::Globalization::DayOfWeek consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::FirstDayOfWeek() const
{
    Windows::Globalization::DayOfWeek value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_FirstDayOfWeek(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::FirstDayOfWeek(Windows::Globalization::DayOfWeek const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_FirstDayOfWeek(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DayOfWeekFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_DayOfWeekFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DayOfWeekFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_DayOfWeekFormat(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarIdentifier() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_CalendarIdentifier(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarIdentifier(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_CalendarIdentifier(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsOutOfScopeEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_IsOutOfScopeEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsOutOfScopeEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_IsOutOfScopeEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsGroupLabelVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->get_IsGroupLabelVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsGroupLabelVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->put_IsGroupLabelVisible(value));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_CalendarViewDayItemChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_CalendarViewDayItemChanging(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_DateChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_DateChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_Opened(get_abi(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> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_Opened(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_Closed(get_abi(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> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_Closed(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::SetDisplayDate(Windows::Foundation::DateTime const& date) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->SetDisplayDate(get_abi(date)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->SetYearDecadeDisplayDimensions(columns, rows));
}

template <typename D> Windows::UI::Xaml::Controls::LightDismissOverlayMode consume_Windows_UI_Xaml_Controls_ICalendarDatePicker2<D>::LightDismissOverlayMode() const
{
    Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker2)->get_LightDismissOverlayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker2<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker2)->put_LightDismissOverlayMode(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ICalendarDatePicker3<D>::Description() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker3)->get_Description(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker3<D>::Description(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker3)->put_Description(get_abi(value)));
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_ICalendarDatePickerDateChangedEventArgs<D>::NewDate() const
{
    Windows::Foundation::IReference<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs)->get_NewDate(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_ICalendarDatePickerDateChangedEventArgs<D>::OldDate() const
{
    Windows::Foundation::IReference<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs)->get_OldDate(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CalendarDatePicker consume_Windows_UI_Xaml_Controls_ICalendarDatePickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::CalendarDatePicker value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_DateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsCalendarOpenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_IsCalendarOpenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DateFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_DateFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::PlaceholderTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_PlaceholderTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::CalendarViewStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_CalendarViewStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::MinDateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_MinDateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::MaxDateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_MaxDateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsTodayHighlightedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_IsTodayHighlightedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DisplayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_DisplayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::FirstDayOfWeekProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_FirstDayOfWeekProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DayOfWeekFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_DayOfWeekFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::CalendarIdentifierProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_CalendarIdentifierProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsOutOfScopeEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_IsOutOfScopeEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsGroupLabelVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics)->get_IsGroupLabelVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics2<D>::LightDismissOverlayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2)->get_LightDismissOverlayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics3<D>::DescriptionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3)->get_DescriptionProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarIdentifier() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarIdentifier(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarIdentifier(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarIdentifier(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayOfWeekFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayOfWeekFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayOfWeekFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayOfWeekFormat(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsGroupLabelVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_IsGroupLabelVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsGroupLabelVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_IsGroupLabelVisible(value));
}

template <typename D> Windows::UI::Xaml::Controls::CalendarViewDisplayMode consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DisplayMode() const
{
    Windows::UI::Xaml::Controls::CalendarViewDisplayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DisplayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DisplayMode(get_abi(value)));
}

template <typename D> Windows::Globalization::DayOfWeek consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstDayOfWeek() const
{
    Windows::Globalization::DayOfWeek value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstDayOfWeek(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstDayOfWeek(Windows::Globalization::DayOfWeek const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstDayOfWeek(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsOutOfScopeEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_IsOutOfScopeEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsOutOfScopeEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_IsOutOfScopeEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsTodayHighlighted() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_IsTodayHighlighted(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsTodayHighlighted(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_IsTodayHighlighted(value));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MaxDate() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MaxDate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MaxDate(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MaxDate(get_abi(value)));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MinDate() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MinDate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MinDate(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MinDate(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ICalendarView<D>::NumberOfWeeksInView() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_NumberOfWeeksInView(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::NumberOfWeeksInView(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_NumberOfWeeksInView(value));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDates() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedDates(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CalendarViewSelectionMode consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectionMode() const
{
    Windows::UI::Xaml::Controls::CalendarViewSelectionMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectionMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectionMode(Windows::UI::Xaml::Controls::CalendarViewSelectionMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectionMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FocusBorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FocusBorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FocusBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FocusBorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedHoverBorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedHoverBorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedHoverBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectedHoverBorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedPressedBorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedPressedBorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedPressedBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectedPressedBorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedBorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedBorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectedBorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HoverBorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_HoverBorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HoverBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_HoverBorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedBorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_PressedBorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_PressedBorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarItemBorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarItemBorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeBackground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_OutOfScopeBackground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeBackground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_OutOfScopeBackground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBackground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarItemBackground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBackground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarItemBackground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_PressedForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_PressedForeground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_TodayForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_TodayForeground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::BlackoutForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_BlackoutForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::BlackoutForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_BlackoutForeground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_SelectedForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_SelectedForeground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_OutOfScopeForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_OutOfScopeForeground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarItemForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarItemForeground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayItemFontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayItemFontFamily(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayItemFontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayItemFontSize(value));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayItemFontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayItemFontStyle(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_DayItemFontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_DayItemFontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayFontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_TodayFontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayFontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_TodayFontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfMonthLabelFontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfMonthLabelFontFamily(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfMonthLabelFontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfMonthLabelFontSize(value));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfMonthLabelFontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfMonthLabelFontStyle(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfMonthLabelFontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfMonthLabelFontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MonthYearItemFontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MonthYearItemFontFamily(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MonthYearItemFontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MonthYearItemFontSize(value));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MonthYearItemFontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MonthYearItemFontStyle(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_MonthYearItemFontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_MonthYearItemFontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfYearDecadeLabelFontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfYearDecadeLabelFontFamily(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfYearDecadeLabelFontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfYearDecadeLabelFontSize(value));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfYearDecadeLabelFontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfYearDecadeLabelFontStyle(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_FirstOfYearDecadeLabelFontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_FirstOfYearDecadeLabelFontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::HorizontalAlignment consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalDayItemAlignment() const
{
    Windows::UI::Xaml::HorizontalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_HorizontalDayItemAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalDayItemAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_HorizontalDayItemAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::VerticalAlignment consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalDayItemAlignment() const
{
    Windows::UI::Xaml::VerticalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_VerticalDayItemAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalDayItemAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_VerticalDayItemAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::HorizontalAlignment consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalFirstOfMonthLabelAlignment() const
{
    Windows::UI::Xaml::HorizontalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_HorizontalFirstOfMonthLabelAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalFirstOfMonthLabelAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_HorizontalFirstOfMonthLabelAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::VerticalAlignment consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalFirstOfMonthLabelAlignment() const
{
    Windows::UI::Xaml::VerticalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_VerticalFirstOfMonthLabelAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalFirstOfMonthLabelAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_VerticalFirstOfMonthLabelAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderThickness() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarItemBorderThickness(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderThickness(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarItemBorderThickness(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->get_CalendarViewDayItemStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->put_CalendarViewDayItemStyle(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->add_CalendarViewDayItemChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->remove_CalendarViewDayItemChanging(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->add_SelectedDatesChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->remove_SelectedDatesChanged(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SetDisplayDate(Windows::Foundation::DateTime const& date) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->SetDisplayDate(get_abi(date)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->SetYearDecadeDisplayDimensions(columns, rows));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::IsBlackout() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItem)->get_IsBlackout(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::IsBlackout(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItem)->put_IsBlackout(value));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::Date() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItem)->get_Date(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::SetDensityColors(param::iterable<Windows::UI::Color> const& colors) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItem)->SetDensityColors(get_abi(colors)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::InRecycleQueue() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->get_InRecycleQueue(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CalendarViewDayItem consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::Item() const
{
    Windows::UI::Xaml::Controls::CalendarViewDayItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->get_Item(put_abi(value)));
    return value;
}

template <typename D> uint32_t consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::Phase() const
{
    uint32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->get_Phase(&value));
    return value;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->RegisterUpdateCallback(get_abi(callback)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs)->RegisterUpdateCallbackWithPhase(callbackPhase, get_abi(callback)));
}

template <typename D> Windows::UI::Xaml::Controls::CalendarViewDayItem consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::CalendarViewDayItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemStatics<D>::IsBlackoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics)->get_IsBlackoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemStatics<D>::DateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics)->get_DateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CalendarView consume_Windows_UI_Xaml_Controls_ICalendarViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::CalendarView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_ICalendarViewSelectedDatesChangedEventArgs<D>::AddedDates() const
{
    Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs)->get_AddedDates(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_ICalendarViewSelectedDatesChangedEventArgs<D>::RemovedDates() const
{
    Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs)->get_RemovedDates(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarIdentifierProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarIdentifierProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayOfWeekFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayOfWeekFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsGroupLabelVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_IsGroupLabelVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DisplayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DisplayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstDayOfWeekProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstDayOfWeekProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsOutOfScopeEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_IsOutOfScopeEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsTodayHighlightedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_IsTodayHighlightedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MaxDateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MaxDateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MinDateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MinDateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::NumberOfWeeksInViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_NumberOfWeeksInViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedDatesProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedDatesProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectionModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectionModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TemplateSettingsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_TemplateSettingsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FocusBorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FocusBorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedHoverBorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedHoverBorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedPressedBorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedPressedBorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedBorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedBorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HoverBorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_HoverBorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::PressedBorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_PressedBorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarItemBorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::OutOfScopeBackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_OutOfScopeBackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarItemBackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::PressedForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_PressedForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TodayForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_TodayForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::BlackoutForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_BlackoutForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_SelectedForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::OutOfScopeForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_OutOfScopeForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarItemForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayItemFontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayItemFontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayItemFontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_DayItemFontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TodayFontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_TodayFontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfMonthLabelFontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfMonthLabelFontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfMonthLabelFontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfMonthLabelFontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MonthYearItemFontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MonthYearItemFontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MonthYearItemFontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_MonthYearItemFontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfYearDecadeLabelFontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfYearDecadeLabelFontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfYearDecadeLabelFontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_FirstOfYearDecadeLabelFontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HorizontalDayItemAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_HorizontalDayItemAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::VerticalDayItemAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_VerticalDayItemAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HorizontalFirstOfMonthLabelAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_HorizontalFirstOfMonthLabelAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::VerticalFirstOfMonthLabelAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_VerticalFirstOfMonthLabelAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBorderThicknessProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarItemBorderThicknessProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarViewDayItemStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewStatics)->get_CalendarViewDayItemStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Rect consume_Windows_UI_Xaml_Controls_ICandidateWindowBoundsChangedEventArgs<D>::Bounds() const
{
    Windows::Foundation::Rect value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs)->get_Bounds(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Canvas consume_Windows_UI_Xaml_Controls_ICanvasFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Canvas value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::LeftProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->get_LeftProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetLeft(Windows::UI::Xaml::UIElement const& element) const
{
    double result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetLeft(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetLeft(Windows::UI::Xaml::UIElement const& element, double length) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->SetLeft(get_abi(element), length));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::TopProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->get_TopProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetTop(Windows::UI::Xaml::UIElement const& element) const
{
    double result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetTop(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetTop(Windows::UI::Xaml::UIElement const& element, double length) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->SetTop(get_abi(element), length));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::ZIndexProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->get_ZIndexProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetZIndex(Windows::UI::Xaml::UIElement const& element) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetZIndex(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetZIndex(Windows::UI::Xaml::UIElement const& element, int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->SetZIndex(get_abi(element), value));
}

template <typename D> Windows::Media::Capture::MediaCapture consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Source() const
{
    Windows::Media::Capture::MediaCapture value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICaptureElement)->get_Source(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Source(Windows::Media::Capture::MediaCapture const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICaptureElement)->put_Source(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Stretch consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Stretch() const
{
    Windows::UI::Xaml::Media::Stretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICaptureElement)->get_Stretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICaptureElement)->put_Stretch(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICaptureElementStatics<D>::SourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICaptureElementStatics)->get_SourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICaptureElementStatics<D>::StretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICaptureElementStatics)->get_StretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CheckBox consume_Windows_UI_Xaml_Controls_ICheckBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::CheckBox value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICheckBoxFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ListViewBaseHeaderItem consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupHeaderContainer() const
{
    Windows::UI::Xaml::Controls::ListViewBaseHeaderItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs)->get_GroupHeaderContainer(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupHeaderContainer(Windows::UI::Xaml::Controls::ListViewBaseHeaderItem const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs)->put_GroupHeaderContainer(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs)->get_GroupIndex(&value));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::Group() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs)->get_Group(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->get_ItemIndex(&value));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::Item() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->get_Item(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::SelectorItem consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemContainer() const
{
    Windows::UI::Xaml::Controls::Primitives::SelectorItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->get_ItemContainer(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemContainer(Windows::UI::Xaml::Controls::Primitives::SelectorItem const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->put_ItemContainer(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::IsContainerPrepared() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->get_IsContainerPrepared(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::IsContainerPrepared(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs)->put_IsContainerPrepared(value));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Value() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs)->get_Value(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::UIElement() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs)->get_UIElement(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs)->put_Cancel(value));
}

template <typename D> Windows::UI::Color consume_Windows_UI_Xaml_Controls_IColorChangedEventArgs<D>::OldColor() const
{
    Windows::UI::Color value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorChangedEventArgs)->get_OldColor(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Color consume_Windows_UI_Xaml_Controls_IColorChangedEventArgs<D>::NewColor() const
{
    Windows::UI::Color value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorChangedEventArgs)->get_NewColor(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Color consume_Windows_UI_Xaml_Controls_IColorPicker<D>::Color() const
{
    Windows::UI::Color value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_Color(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::Color(Windows::UI::Color const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_Color(get_abi(value)));
}

template <typename D> Windows::Foundation::IReference<Windows::UI::Color> consume_Windows_UI_Xaml_Controls_IColorPicker<D>::PreviousColor() const
{
    Windows::Foundation::IReference<Windows::UI::Color> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_PreviousColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::PreviousColor(optional<Windows::UI::Color> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_PreviousColor(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsAlphaEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSpectrumVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorSpectrumVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSpectrumVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsColorSpectrumVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorPreviewVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorPreviewVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorPreviewVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsColorPreviewVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSliderVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorSliderVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSliderVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsColorSliderVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaSliderVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaSliderVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaSliderVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsAlphaSliderVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsMoreButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsMoreButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsMoreButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsMoreButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorChannelTextInputVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorChannelTextInputVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorChannelTextInputVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsColorChannelTextInputVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaTextInputVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaTextInputVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaTextInputVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsAlphaTextInputVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsHexInputVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsHexInputVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsHexInputVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_IsHexInputVisible(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinHue() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinHue(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinHue(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MinHue(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxHue() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxHue(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxHue(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MaxHue(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinSaturation() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinSaturation(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinSaturation(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MinSaturation(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxSaturation() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxSaturation(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxSaturation(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MaxSaturation(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinValue() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinValue(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinValue(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MinValue(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxValue() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxValue(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxValue(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_MaxValue(value));
}

template <typename D> Windows::UI::Xaml::Controls::ColorSpectrumShape consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumShape() const
{
    Windows::UI::Xaml::Controls::ColorSpectrumShape value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_ColorSpectrumShape(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumShape(Windows::UI::Xaml::Controls::ColorSpectrumShape const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_ColorSpectrumShape(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ColorSpectrumComponents consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumComponents() const
{
    Windows::UI::Xaml::Controls::ColorSpectrumComponents value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_ColorSpectrumComponents(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumComponents(Windows::UI::Xaml::Controls::ColorSpectrumComponents const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->put_ColorSpectrumComponents(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->add_ColorChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->remove_ColorChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::ColorPicker consume_Windows_UI_Xaml_Controls_IColorPickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ColorPicker value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_ColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::PreviousColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_PreviousColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsAlphaEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorSpectrumVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsColorSpectrumVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorPreviewVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsColorPreviewVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorSliderVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsColorSliderVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaSliderVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsAlphaSliderVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsMoreButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsMoreButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorChannelTextInputVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsColorChannelTextInputVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaTextInputVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsAlphaTextInputVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsHexInputVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_IsHexInputVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinHueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MinHueProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxHueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MaxHueProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinSaturationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MinSaturationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxSaturationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MaxSaturationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinValueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MinValueProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxValueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_MaxValueProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorSpectrumShapeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_ColorSpectrumShapeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorSpectrumComponentsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerStatics)->get_ColorSpectrumComponentsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::GridLength consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::Width() const
{
    Windows::UI::Xaml::GridLength value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->get_Width(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::Width(Windows::UI::Xaml::GridLength const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->put_Width(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MaxWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->get_MaxWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MaxWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->put_MaxWidth(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MinWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->get_MinWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MinWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->put_MinWidth(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::ActualWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinition)->get_ActualWidth(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::WidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinitionStatics)->get_WidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::MaxWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinitionStatics)->get_MaxWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::MinWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColumnDefinitionStatics)->get_MinWidthProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsDropDownOpen() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_IsDropDownOpen(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsDropDownOpen(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->put_IsDropDownOpen(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsEditable() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_IsEditable(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsSelectionBoxHighlighted() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_IsSelectionBoxHighlighted(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IComboBox<D>::MaxDropDownHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_MaxDropDownHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox<D>::MaxDropDownHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->put_MaxDropDownHeight(value));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IComboBox<D>::SelectionBoxItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_SelectionBoxItem(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IComboBox<D>::SelectionBoxItemTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_SelectionBoxItemTemplate(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings consume_Windows_UI_Xaml_Controls_IComboBox<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->add_DropDownClosed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->remove_DropDownClosed(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->add_DropDownOpened(get_abi(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> void consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->remove_DropDownOpened(get_abi(token)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IComboBox2<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox2<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IComboBox2<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IComboBox2<D>::PlaceholderText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->get_PlaceholderText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox2<D>::PlaceholderText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox2)->put_PlaceholderText(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::LightDismissOverlayMode consume_Windows_UI_Xaml_Controls_IComboBox3<D>::LightDismissOverlayMode() const
{
    Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox3)->get_LightDismissOverlayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox3<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox3)->put_LightDismissOverlayMode(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IComboBox3<D>::IsTextSearchEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox3)->get_IsTextSearchEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox3<D>::IsTextSearchEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox3)->put_IsTextSearchEnabled(value));
}

template <typename D> Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger consume_Windows_UI_Xaml_Controls_IComboBox4<D>::SelectionChangedTrigger() const
{
    Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox4)->get_SelectionChangedTrigger(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox4<D>::SelectionChangedTrigger(Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox4)->put_SelectionChangedTrigger(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IComboBox5<D>::PlaceholderForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox5)->get_PlaceholderForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox5<D>::PlaceholderForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox5)->put_PlaceholderForeground(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox6<D>::IsEditable(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->put_IsEditable(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Text() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->get_Text(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Text(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->put_Text(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextBoxStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->get_TextBoxStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextBoxStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->put_TextBoxStyle(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Description() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->get_Description(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Description(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->put_Description(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->add_TextSubmitted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextSubmitted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox6)->remove_TextSubmitted(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::ComboBox consume_Windows_UI_Xaml_Controls_IComboBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ComboBox value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ComboBoxItem consume_Windows_UI_Xaml_Controls_IComboBoxItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ComboBoxItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBoxOverrides<D>::OnDropDownClosed(Windows::Foundation::IInspectable const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxOverrides)->OnDropDownClosed(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBoxOverrides<D>::OnDropDownOpened(Windows::Foundation::IInspectable const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxOverrides)->OnDropDownOpened(get_abi(e)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics<D>::IsDropDownOpenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics)->get_IsDropDownOpenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics<D>::MaxDropDownHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics)->get_MaxDropDownHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics2)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics2)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::PlaceholderTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics2)->get_PlaceholderTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics3<D>::LightDismissOverlayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics3)->get_LightDismissOverlayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics3<D>::IsTextSearchEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics3)->get_IsTextSearchEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics4<D>::SelectionChangedTriggerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics4)->get_SelectionChangedTriggerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics5<D>::PlaceholderForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics5)->get_PlaceholderForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::IsEditableProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics6)->get_IsEditableProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::TextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics6)->get_TextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::TextBoxStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics6)->get_TextBoxStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::DescriptionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxStatics6)->get_DescriptionProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Text() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs)->get_Text(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs)->put_Handled(value));
}

template <typename D> Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement> consume_Windows_UI_Xaml_Controls_ICommandBar<D>::PrimaryCommands() const
{
    Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar)->get_PrimaryCommands(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement> consume_Windows_UI_Xaml_Controls_ICommandBar<D>::SecondaryCommands() const
{
    Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar)->get_SecondaryCommands(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarOverflowPresenterStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar2)->get_CommandBarOverflowPresenterStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarOverflowPresenterStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar2)->put_CommandBarOverflowPresenterStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarTemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar2)->get_CommandBarTemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DefaultLabelPosition() const
{
    Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->get_DefaultLabelPosition(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DefaultLabelPosition(Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->put_DefaultLabelPosition(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::OverflowButtonVisibility() const
{
    Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->get_OverflowButtonVisibility(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::OverflowButtonVisibility(Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->put_OverflowButtonVisibility(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::IsDynamicOverflowEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->get_IsDynamicOverflowEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::IsDynamicOverflowEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->put_IsDynamicOverflowEnabled(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->add_DynamicOverflowItemsChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->remove_DynamicOverflowItemsChanging(get_abi(token)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICommandBarElement<D>::IsCompact() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement)->get_IsCompact(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICommandBarElement<D>::IsCompact(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement)->put_IsCompact(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::IsInOverflow() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement2)->get_IsInOverflow(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::DynamicOverflowOrder() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement2)->get_DynamicOverflowOrder(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::DynamicOverflowOrder(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarElement2)->put_DynamicOverflowOrder(value));
}

template <typename D> Windows::UI::Xaml::Controls::CommandBar consume_Windows_UI_Xaml_Controls_ICommandBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::CommandBar value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement> consume_Windows_UI_Xaml_Controls_ICommandBarFlyout<D>::PrimaryCommands() const
{
    Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarFlyout)->get_PrimaryCommands(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement> consume_Windows_UI_Xaml_Controls_ICommandBarFlyout<D>::SecondaryCommands() const
{
    Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarFlyout)->get_SecondaryCommands(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CommandBarFlyout consume_Windows_UI_Xaml_Controls_ICommandBarFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::CommandBarFlyout value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CommandBarOverflowPresenter consume_Windows_UI_Xaml_Controls_ICommandBarOverflowPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::CommandBarOverflowPresenter value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICommandBarStatics<D>::PrimaryCommandsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics)->get_PrimaryCommandsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICommandBarStatics<D>::SecondaryCommandsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics)->get_SecondaryCommandsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICommandBarStatics2<D>::CommandBarOverflowPresenterStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics2)->get_CommandBarOverflowPresenterStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::DefaultLabelPositionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics3)->get_DefaultLabelPositionProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::OverflowButtonVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics3)->get_OverflowButtonVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::IsDynamicOverflowEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarStatics3)->get_IsDynamicOverflowEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::SelectorItem consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::ItemContainer() const
{
    Windows::UI::Xaml::Controls::Primitives::SelectorItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_ItemContainer(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::InRecycleQueue() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_InRecycleQueue(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::ItemIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_ItemIndex(&value));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Item() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_Item(put_abi(value)));
    return value;
}

template <typename D> uint32_t consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Phase() const
{
    uint32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_Phase(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->put_Handled(value));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->RegisterUpdateCallback(get_abi(callback)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs)->RegisterUpdateCallbackWithPhase(callbackPhase, get_abi(callback)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IContentControl<D>::Content() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl)->get_Content(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentControl<D>::Content(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl)->put_Content(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl)->get_ContentTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl)->put_ContentTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::DataTemplateSelector consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplateSelector() const
{
    Windows::UI::Xaml::Controls::DataTemplateSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl)->get_ContentTemplateSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl)->put_ContentTemplateSelector(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl)->get_ContentTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl)->put_ContentTransitions(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IContentControl2<D>::ContentTemplateRoot() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControl2)->get_ContentTemplateRoot(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ContentControl consume_Windows_UI_Xaml_Controls_IContentControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ContentControl value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControlFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentControlOverrides<D>::OnContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControlOverrides)->OnContentChanged(get_abi(oldContent), get_abi(newContent)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentControlOverrides<D>::OnContentTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldContentTemplate, Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControlOverrides)->OnContentTemplateChanged(get_abi(oldContentTemplate), get_abi(newContentTemplate)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IContentControlOverrides)->OnContentTemplateSelectorChanged(get_abi(oldContentTemplateSelector), get_abi(newContentTemplateSelector)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControlStatics)->get_ContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControlStatics)->get_ContentTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTemplateSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControlStatics)->get_ContentTemplateSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControlStatics)->get_ContentTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Title() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_Title(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Title(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_Title(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IContentDialog<D>::TitleTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_TitleTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::TitleTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_TitleTemplate(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContentDialog<D>::FullSizeDesired() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_FullSizeDesired(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::FullSizeDesired(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_FullSizeDesired(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_PrimaryButtonText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_PrimaryButtonText(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_SecondaryButtonText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_SecondaryButtonText(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Input::ICommand consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommand() const
{
    Windows::UI::Xaml::Input::ICommand value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_PrimaryButtonCommand(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommand(Windows::UI::Xaml::Input::ICommand const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_PrimaryButtonCommand(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Input::ICommand consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommand() const
{
    Windows::UI::Xaml::Input::ICommand value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_SecondaryButtonCommand(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommand(Windows::UI::Xaml::Input::ICommand const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_SecondaryButtonCommand(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommandParameter() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_PrimaryButtonCommandParameter(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommandParameter(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_PrimaryButtonCommandParameter(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommandParameter() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_SecondaryButtonCommandParameter(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommandParameter(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_SecondaryButtonCommandParameter(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsPrimaryButtonEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_IsPrimaryButtonEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsPrimaryButtonEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_IsPrimaryButtonEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsSecondaryButtonEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->get_IsSecondaryButtonEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsSecondaryButtonEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->put_IsSecondaryButtonEnabled(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Closing(get_abi(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> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Closing(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Closed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Closed(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Opened(get_abi(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> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Opened(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_PrimaryButtonClick(get_abi(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> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_PrimaryButtonClick(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_SecondaryButtonClick(get_abi(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> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_SecondaryButtonClick(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Hide() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->Hide());
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult> consume_Windows_UI_Xaml_Controls_IContentDialog<D>::ShowAsync() const
{
    Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->ShowAsync(put_abi(operation)));
    return operation;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_CloseButtonText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_CloseButtonText(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Input::ICommand consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommand() const
{
    Windows::UI::Xaml::Input::ICommand value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_CloseButtonCommand(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommand(Windows::UI::Xaml::Input::ICommand const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_CloseButtonCommand(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommandParameter() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_CloseButtonCommandParameter(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommandParameter(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_CloseButtonCommandParameter(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::PrimaryButtonStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_PrimaryButtonStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::PrimaryButtonStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_PrimaryButtonStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::SecondaryButtonStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_SecondaryButtonStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::SecondaryButtonStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_SecondaryButtonStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_CloseButtonStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_CloseButtonStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ContentDialogButton consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::DefaultButton() const
{
    Windows::UI::Xaml::Controls::ContentDialogButton value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->get_DefaultButton(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::DefaultButton(Windows::UI::Xaml::Controls::ContentDialogButton const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->put_DefaultButton(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->add_CloseButtonClick(get_abi(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> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->remove_CloseButtonClick(get_abi(token)));
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult> consume_Windows_UI_Xaml_Controls_IContentDialog3<D>::ShowAsync(Windows::UI::Xaml::Controls::ContentDialogPlacement const& placement) const
{
    Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog3)->ShowAsyncWithPlacement(get_abi(placement), put_abi(operation)));
    return operation;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickDeferral<D>::Complete() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral)->Complete());
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs)->put_Cancel(value));
}

template <typename D> Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::GetDeferral() const
{
    Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs)->GetDeferral(put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::ContentDialogResult consume_Windows_UI_Xaml_Controls_IContentDialogClosedEventArgs<D>::Result() const
{
    Windows::UI::Xaml::Controls::ContentDialogResult value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs)->get_Result(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialogClosingDeferral<D>::Complete() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingDeferral)->Complete());
}

template <typename D> Windows::UI::Xaml::Controls::ContentDialogResult consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Result() const
{
    Windows::UI::Xaml::Controls::ContentDialogResult value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->get_Result(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::UI::Xaml::Controls::ContentDialogClosingDeferral consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::GetDeferral() const
{
    Windows::UI::Xaml::Controls::ContentDialogClosingDeferral result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->GetDeferral(put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::ContentDialog consume_Windows_UI_Xaml_Controls_IContentDialogFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ContentDialog value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::TitleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_TitleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::TitleTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_TitleTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::FullSizeDesiredProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_FullSizeDesiredProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_PrimaryButtonTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_SecondaryButtonTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonCommandProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_PrimaryButtonCommandProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonCommandProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_SecondaryButtonCommandProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonCommandParameterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_PrimaryButtonCommandParameterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonCommandParameterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_SecondaryButtonCommandParameterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::IsPrimaryButtonEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_IsPrimaryButtonEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::IsSecondaryButtonEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics)->get_IsSecondaryButtonEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_CloseButtonTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonCommandProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_CloseButtonCommandProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonCommandParameterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_CloseButtonCommandParameterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::PrimaryButtonStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_PrimaryButtonStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::SecondaryButtonStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_SecondaryButtonStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_CloseButtonStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::DefaultButtonProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogStatics2)->get_DefaultButtonProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ContentLinkChangeKind consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::ChangeKind() const
{
    Windows::UI::Xaml::Controls::ContentLinkChangeKind value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs)->get_ChangeKind(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Text::ContentLinkInfo consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::ContentLinkInfo() const
{
    Windows::UI::Text::ContentLinkInfo value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs)->get_ContentLinkInfo(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextRange consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::TextRange() const
{
    Windows::UI::Xaml::Documents::TextRange value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs)->get_TextRange(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Content() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_Content(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Content(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_Content(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_ContentTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_ContentTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::DataTemplateSelector consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplateSelector() const
{
    Windows::UI::Xaml::Controls::DataTemplateSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_ContentTemplateSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_ContentTemplateSelector(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_ContentTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_ContentTransitions(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontSize(value));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontFamily(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontStyle(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStretch consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStretch() const
{
    Windows::UI::Text::FontStretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_FontStretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStretch(Windows::UI::Text::FontStretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_FontStretch(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::CharacterSpacing() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_CharacterSpacing(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::CharacterSpacing(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_CharacterSpacing(value));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Foreground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->get_Foreground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter)->put_Foreground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::OpticalMarginAlignment consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::OpticalMarginAlignment() const
{
    Windows::UI::Xaml::OpticalMarginAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter2)->get_OpticalMarginAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter2)->put_OpticalMarginAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextLineBounds consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::TextLineBounds() const
{
    Windows::UI::Xaml::TextLineBounds value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter2)->get_TextLineBounds(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::TextLineBounds(Windows::UI::Xaml::TextLineBounds const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter2)->put_TextLineBounds(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContentPresenter3<D>::IsTextScaleFactorEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter3)->get_IsTextScaleFactorEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter3<D>::IsTextScaleFactorEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter3)->put_IsTextScaleFactorEnabled(value));
}

template <typename D> Windows::UI::Xaml::TextWrapping consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::TextWrapping() const
{
    Windows::UI::Xaml::TextWrapping value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_TextWrapping(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_TextWrapping(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::MaxLines() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_MaxLines(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::MaxLines(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_MaxLines(value));
}

template <typename D> Windows::UI::Xaml::LineStackingStrategy consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineStackingStrategy() const
{
    Windows::UI::Xaml::LineStackingStrategy value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_LineStackingStrategy(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_LineStackingStrategy(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_LineHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_LineHeight(value));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_BorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_BorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderThickness() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_BorderThickness(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_BorderThickness(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::CornerRadius consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::CornerRadius() const
{
    Windows::UI::Xaml::CornerRadius value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_CornerRadius(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_CornerRadius(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_Padding(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Background() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_Background(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_Background(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::HorizontalAlignment consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::HorizontalContentAlignment() const
{
    Windows::UI::Xaml::HorizontalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_HorizontalContentAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_HorizontalContentAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::VerticalAlignment consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::VerticalContentAlignment() const
{
    Windows::UI::Xaml::VerticalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->get_VerticalContentAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter4)->put_VerticalContentAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::BrushTransition consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundTransition() const
{
    Windows::UI::Xaml::BrushTransition value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter5)->get_BackgroundTransition(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundTransition(Windows::UI::Xaml::BrushTransition const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter5)->put_BackgroundTransition(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::BackgroundSizing consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundSizing() const
{
    Windows::UI::Xaml::Controls::BackgroundSizing value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter5)->get_BackgroundSizing(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenter5)->put_BackgroundSizing(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ContentPresenter consume_Windows_UI_Xaml_Controls_IContentPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ContentPresenter value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentPresenterOverrides<D>::OnContentTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldContentTemplate, Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterOverrides)->OnContentTemplateChanged(get_abi(oldContentTemplate), get_abi(newContentTemplate)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IContentPresenterOverrides)->OnContentTemplateSelectorChanged(get_abi(oldContentTemplateSelector), get_abi(newContentTemplateSelector)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ContentTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTemplateSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ContentTemplateSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ContentTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontStretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_FontStretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::CharacterSpacingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_CharacterSpacingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics)->get_ForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics2<D>::OpticalMarginAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics2)->get_OpticalMarginAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics2<D>::TextLineBoundsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics2)->get_TextLineBoundsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics3<D>::IsTextScaleFactorEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics3)->get_IsTextScaleFactorEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::TextWrappingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_TextWrappingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::MaxLinesProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_MaxLinesProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::LineStackingStrategyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_LineStackingStrategyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::LineHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_LineHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_BorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BorderThicknessProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_BorderThicknessProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::CornerRadiusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_CornerRadiusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_BackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::HorizontalContentAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_HorizontalContentAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::VerticalContentAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics4)->get_VerticalContentAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IContentPresenterStatics5<D>::BackgroundSizingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterStatics5)->get_BackgroundSizingProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContextMenuEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContextMenuEventArgs)->put_Handled(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::CursorLeft() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContextMenuEventArgs)->get_CursorLeft(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::CursorTop() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContextMenuEventArgs)->get_CursorTop(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IControl<D>::FontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::FontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontSize(value));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_IControl<D>::FontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontFamily(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_IControl<D>::FontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_IControl<D>::FontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontStyle(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStretch consume_Windows_UI_Xaml_Controls_IControl<D>::FontStretch() const
{
    Windows::UI::Text::FontStretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FontStretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::FontStretch(Windows::UI::Text::FontStretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_FontStretch(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IControl<D>::CharacterSpacing() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_CharacterSpacing(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::CharacterSpacing(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_CharacterSpacing(value));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IControl<D>::Foreground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_Foreground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_Foreground(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl<D>::IsTabStop() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_IsTabStop(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::IsTabStop(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_IsTabStop(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_IsEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_IsEnabled(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IControl<D>::TabIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_TabIndex(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::TabIndex(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_TabIndex(value));
}

template <typename D> Windows::UI::Xaml::Input::KeyboardNavigationMode consume_Windows_UI_Xaml_Controls_IControl<D>::TabNavigation() const
{
    Windows::UI::Xaml::Input::KeyboardNavigationMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_TabNavigation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::TabNavigation(Windows::UI::Xaml::Input::KeyboardNavigationMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_TabNavigation(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ControlTemplate consume_Windows_UI_Xaml_Controls_IControl<D>::Template() const
{
    Windows::UI::Xaml::Controls::ControlTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_Template(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::Template(Windows::UI::Xaml::Controls::ControlTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_Template(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IControl<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_Padding(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::HorizontalAlignment consume_Windows_UI_Xaml_Controls_IControl<D>::HorizontalContentAlignment() const
{
    Windows::UI::Xaml::HorizontalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_HorizontalContentAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_HorizontalContentAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::VerticalAlignment consume_Windows_UI_Xaml_Controls_IControl<D>::VerticalContentAlignment() const
{
    Windows::UI::Xaml::VerticalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_VerticalContentAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_VerticalContentAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IControl<D>::Background() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_Background(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_Background(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IControl<D>::BorderThickness() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_BorderThickness(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_BorderThickness(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IControl<D>::BorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_BorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->put_BorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::FocusState consume_Windows_UI_Xaml_Controls_IControl<D>::FocusState() const
{
    Windows::UI::Xaml::FocusState value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->get_FocusState(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(Windows::UI::Xaml::DependencyPropertyChangedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->add_IsEnabledChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->remove_IsEnabledChanged(get_abi(token)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl<D>::ApplyTemplate() const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->ApplyTemplate(&result));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->Focus(get_abi(value), &result));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl2<D>::IsTextScaleFactorEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl2)->get_IsTextScaleFactorEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl2<D>::IsTextScaleFactorEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl2)->put_IsTextScaleFactorEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl3<D>::UseSystemFocusVisuals() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl3)->get_UseSystemFocusVisuals(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl3<D>::UseSystemFocusVisuals(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl3)->put_UseSystemFocusVisuals(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngagementEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_IsFocusEngagementEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngagementEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_IsFocusEngagementEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngaged() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_IsFocusEngaged(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngaged(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_IsFocusEngaged(value));
}

template <typename D> Windows::UI::Xaml::Controls::RequiresPointer consume_Windows_UI_Xaml_Controls_IControl4<D>::RequiresPointer() const
{
    Windows::UI::Xaml::Controls::RequiresPointer value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_RequiresPointer(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::RequiresPointer(Windows::UI::Xaml::Controls::RequiresPointer const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_RequiresPointer(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusLeft() const
{
    Windows::UI::Xaml::DependencyObject value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_XYFocusLeft(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusLeft(Windows::UI::Xaml::DependencyObject const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_XYFocusLeft(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusRight() const
{
    Windows::UI::Xaml::DependencyObject value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_XYFocusRight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusRight(Windows::UI::Xaml::DependencyObject const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_XYFocusRight(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusUp() const
{
    Windows::UI::Xaml::DependencyObject value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_XYFocusUp(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusUp(Windows::UI::Xaml::DependencyObject const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_XYFocusUp(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusDown() const
{
    Windows::UI::Xaml::DependencyObject value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_XYFocusDown(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusDown(Windows::UI::Xaml::DependencyObject const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_XYFocusDown(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::ElementSoundMode consume_Windows_UI_Xaml_Controls_IControl4<D>::ElementSoundMode() const
{
    Windows::UI::Xaml::ElementSoundMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->get_ElementSoundMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::ElementSoundMode(Windows::UI::Xaml::ElementSoundMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->put_ElementSoundMode(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IControl4)->add_FocusEngaged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->remove_FocusEngaged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IControl4)->add_FocusDisengaged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->remove_FocusDisengaged(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::RemoveFocusEngagement() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->RemoveFocusEngagement());
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IControl5<D>::DefaultStyleResourceUri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl5)->get_DefaultStyleResourceUri(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl5<D>::DefaultStyleResourceUri(Windows::Foundation::Uri const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl5)->put_DefaultStyleResourceUri(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::BackgroundSizing consume_Windows_UI_Xaml_Controls_IControl7<D>::BackgroundSizing() const
{
    Windows::UI::Xaml::Controls::BackgroundSizing value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl7)->get_BackgroundSizing(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl7<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl7)->put_BackgroundSizing(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::CornerRadius consume_Windows_UI_Xaml_Controls_IControl7<D>::CornerRadius() const
{
    Windows::UI::Xaml::CornerRadius value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl7)->get_CornerRadius(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl7<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl7)->put_CornerRadius(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Control consume_Windows_UI_Xaml_Controls_IControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Control value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerEntered(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerEntered(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerPressed(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerMoved(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerMoved(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerReleased(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerExited(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerExited(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerCaptureLost(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerCaptureLost(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerCanceled(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerCanceled(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerWheelChanged(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnPointerWheelChanged(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnTapped(Windows::UI::Xaml::Input::TappedRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnTapped(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDoubleTapped(Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDoubleTapped(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnHolding(Windows::UI::Xaml::Input::HoldingRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnHolding(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnRightTapped(Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnRightTapped(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationStarting(Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationStarting(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationInertiaStarting(Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationInertiaStarting(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationStarted(Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationStarted(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationDelta(Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationDelta(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationCompleted(Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnManipulationCompleted(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnKeyUp(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnKeyDown(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnGotFocus(Windows::UI::Xaml::RoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnGotFocus(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnLostFocus(Windows::UI::Xaml::RoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnLostFocus(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragEnter(Windows::UI::Xaml::DragEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDragEnter(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragLeave(Windows::UI::Xaml::DragEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDragLeave(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragOver(Windows::UI::Xaml::DragEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDragOver(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDrop(Windows::UI::Xaml::DragEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides)->OnDrop(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnPreviewKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides6)->OnPreviewKeyDown(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnPreviewKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides6)->OnPreviewKeyUp(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnCharacterReceived(Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlOverrides6)->OnCharacterReceived(get_abi(e)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IControlProtected<D>::DefaultStyleKey() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlProtected)->get_DefaultStyleKey(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlProtected<D>::DefaultStyleKey(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlProtected)->put_DefaultStyleKey(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IControlProtected<D>::GetTemplateChild(param::hstring const& childName) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlProtected)->GetTemplateChild(get_abi(childName), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontStretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FontStretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::CharacterSpacingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_CharacterSpacingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::ForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_ForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::IsTabStopProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_IsTabStopProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::IsEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_IsEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TabIndexProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_TabIndexProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TabNavigationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_TabNavigationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_TemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::HorizontalContentAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_HorizontalContentAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::VerticalContentAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_VerticalContentAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_BackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BorderThicknessProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_BorderThicknessProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_BorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::DefaultStyleKeyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_DefaultStyleKeyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FocusStateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics)->get_FocusStateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics2<D>::IsTextScaleFactorEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics2)->get_IsTextScaleFactorEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::UseSystemFocusVisualsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->get_UseSystemFocusVisualsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::IsTemplateFocusTargetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->get_IsTemplateFocusTargetProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::GetIsTemplateFocusTarget(Windows::UI::Xaml::FrameworkElement const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->GetIsTemplateFocusTarget(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::SetIsTemplateFocusTarget(Windows::UI::Xaml::FrameworkElement const& element, bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->SetIsTemplateFocusTarget(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::IsFocusEngagementEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_IsFocusEngagementEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::IsFocusEngagedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_IsFocusEngagedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::RequiresPointerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_RequiresPointerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusLeftProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_XYFocusLeftProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusRightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_XYFocusRightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusUpProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_XYFocusUpProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusDownProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_XYFocusDownProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::ElementSoundModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics4)->get_ElementSoundModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::DefaultStyleResourceUriProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->get_DefaultStyleResourceUriProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::IsTemplateKeyTipTargetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->get_IsTemplateKeyTipTargetProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::GetIsTemplateKeyTipTarget(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->GetIsTemplateKeyTipTarget(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::SetIsTemplateKeyTipTarget(Windows::UI::Xaml::DependencyObject const& element, bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->SetIsTemplateKeyTipTarget(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics7<D>::BackgroundSizingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics7)->get_BackgroundSizingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IControlStatics7<D>::CornerRadiusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics7)->get_CornerRadiusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Interop::TypeName consume_Windows_UI_Xaml_Controls_IControlTemplate<D>::TargetType() const
{
    Windows::UI::Xaml::Interop::TypeName value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlTemplate)->get_TargetType(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControlTemplate<D>::TargetType(Windows::UI::Xaml::Interop::TypeName const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlTemplate)->put_TargetType(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IDataTemplateSelector<D>::SelectTemplate(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::UI::Xaml::DataTemplate result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelector)->SelectTemplate(get_abi(item), get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IDataTemplateSelector2<D>::SelectTemplate(Windows::Foundation::IInspectable const& item) const
{
    Windows::UI::Xaml::DataTemplate result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelector2)->SelectTemplateForItem(get_abi(item), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::DataTemplateSelector consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::DataTemplateSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorOverrides<D>::SelectTemplateCore(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::UI::Xaml::DataTemplate result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides)->SelectTemplateCore(get_abi(item), get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorOverrides2<D>::SelectTemplateCore(Windows::Foundation::IInspectable const& item) const
{
    Windows::UI::Xaml::DataTemplate result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2)->SelectTemplateForItemCore(get_abi(item), put_abi(result)));
    return result;
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePickedEventArgs<D>::OldDate() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickedEventArgs)->get_OldDate(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePickedEventArgs<D>::NewDate() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickedEventArgs)->get_NewDate(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IDatePicker<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePicker<D>::CalendarIdentifier() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_CalendarIdentifier(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::CalendarIdentifier(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_CalendarIdentifier(get_abi(value)));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Date() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_Date(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Date(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_Date(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_DayVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_DayVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_MonthVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_MonthVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_YearVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_YearVisible(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_DayFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_DayFormat(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_MonthFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_MonthFormat(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_YearFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_YearFormat(get_abi(value)));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MinYear() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_MinYear(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MinYear(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_MinYear(get_abi(value)));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MaxYear() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_MaxYear(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MaxYear(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_MaxYear(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->put_Orientation(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->add_DateChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->remove_DateChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::LightDismissOverlayMode consume_Windows_UI_Xaml_Controls_IDatePicker2<D>::LightDismissOverlayMode() const
{
    Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker2)->get_LightDismissOverlayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker2<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker2)->put_LightDismissOverlayMode(get_abi(value)));
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDate() const
{
    Windows::Foundation::IReference<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker3)->get_SelectedDate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDate(optional<Windows::Foundation::DateTime> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker3)->put_SelectedDate(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IDatePicker3)->add_SelectedDateChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDateChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker3)->remove_SelectedDateChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::DatePicker consume_Windows_UI_Xaml_Controls_IDatePickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::DatePicker value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::CalendarIdentifier() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_CalendarIdentifier(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::CalendarIdentifier(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_CalendarIdentifier(get_abi(value)));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::Date() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_Date(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::Date(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_Date(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DayVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_DayVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DayVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_DayVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MonthVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_MonthVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MonthVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_MonthVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::YearVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_YearVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::YearVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_YearVisible(value));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MinYear() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_MinYear(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MinYear(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_MinYear(get_abi(value)));
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MaxYear() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->get_MaxYear(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MaxYear(Windows::Foundation::DateTime const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->put_MaxYear(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->add_DatePicked(get_abi(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> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->remove_DatePicked(get_abi(token)));
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::DateTime>> consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::ShowAtAsync(Windows::UI::Xaml::FrameworkElement const& target) const
{
    Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::DateTime>> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->ShowAtAsync(get_abi(target), put_abi(operation)));
    return operation;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::DayFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->get_DayFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::DayFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->put_DayFormat(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::MonthFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->get_MonthFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::MonthFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->put_MonthFormat(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::YearFormat() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->get_YearFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::YearFormat(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout2)->put_YearFormat(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::PrimaryText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItem)->get_PrimaryText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::PrimaryText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItem)->put_PrimaryText(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::SecondaryText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItem)->get_SecondaryText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::SecondaryText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItem)->put_SecondaryText(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItemStatics<D>::PrimaryTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics)->get_PrimaryTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItemStatics<D>::SecondaryTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics)->get_SecondaryTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::CalendarIdentifierProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_CalendarIdentifierProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::DateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_DateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::DayVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_DayVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MonthVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_MonthVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::YearVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_YearVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MinYearProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_MinYearProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MaxYearProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics)->get_MaxYearProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::DayFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2)->get_DayFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::MonthFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2)->get_MonthFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::YearFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2)->get_YearFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_IDatePickerSelectedValueChangedEventArgs<D>::OldDate() const
{
    Windows::Foundation::IReference<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs)->get_OldDate(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::DateTime> consume_Windows_UI_Xaml_Controls_IDatePickerSelectedValueChangedEventArgs<D>::NewDate() const
{
    Windows::Foundation::IReference<Windows::Foundation::DateTime> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs)->get_NewDate(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::CalendarIdentifierProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_CalendarIdentifierProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_DateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DayVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_DayVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MonthVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_MonthVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::YearVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_YearVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DayFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_DayFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MonthFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_MonthFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::YearFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_YearFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MinYearProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_MinYearProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MaxYearProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_MaxYearProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics2<D>::LightDismissOverlayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics2)->get_LightDismissOverlayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IDatePickerStatics3<D>::SelectedDateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerStatics3)->get_SelectedDateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePickerValueChangedEventArgs<D>::OldDate() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs)->get_OldDate(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::DateTime consume_Windows_UI_Xaml_Controls_IDatePickerValueChangedEventArgs<D>::NewDate() const
{
    Windows::Foundation::DateTime value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs)->get_NewDate(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_IDragItemsCompletedEventArgs<D>::Items() const
{
    Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs)->get_Items(put_abi(value)));
    return value;
}

template <typename D> Windows::ApplicationModel::DataTransfer::DataPackageOperation consume_Windows_UI_Xaml_Controls_IDragItemsCompletedEventArgs<D>::DropResult() const
{
    Windows::ApplicationModel::DataTransfer::DataPackageOperation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs)->get_DropResult(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Items() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs)->get_Items(put_abi(value)));
    return value;
}

template <typename D> Windows::ApplicationModel::DataTransfer::DataPackage consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Data() const
{
    Windows::ApplicationModel::DataTransfer::DataPackage value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs)->get_Data(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer 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
{
    Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory)->CreateInstance(get_abi(owner), get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::DropDownButton consume_Windows_UI_Xaml_Controls_IDropDownButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::DropDownButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDropDownButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction consume_Windows_UI_Xaml_Controls_IDynamicOverflowItemsChangingEventArgs<D>::Action() const
{
    Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs)->get_Action(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFlipView2<D>::UseTouchAnimationsForAllNavigation() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlipView2)->get_UseTouchAnimationsForAllNavigation(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFlipView2<D>::UseTouchAnimationsForAllNavigation(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlipView2)->put_UseTouchAnimationsForAllNavigation(value));
}

template <typename D> Windows::UI::Xaml::Controls::FlipView consume_Windows_UI_Xaml_Controls_IFlipViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::FlipView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlipViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::FlipViewItem consume_Windows_UI_Xaml_Controls_IFlipViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::FlipViewItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlipViewItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFlipViewStatics2<D>::UseTouchAnimationsForAllNavigationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlipViewStatics2)->get_UseTouchAnimationsForAllNavigationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IFlyout<D>::Content() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyout)->get_Content(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFlyout<D>::Content(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyout)->put_Content(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IFlyout<D>::FlyoutPresenterStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyout)->get_FlyoutPresenterStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFlyout<D>::FlyoutPresenterStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyout)->put_FlyoutPresenterStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Flyout consume_Windows_UI_Xaml_Controls_IFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Flyout value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyoutFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::FlyoutPresenter consume_Windows_UI_Xaml_Controls_IFlyoutPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::FlyoutPresenter value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyoutPresenterFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFlyoutStatics<D>::ContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyoutStatics)->get_ContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFlyoutStatics<D>::FlyoutPresenterStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyoutStatics)->get_FlyoutPresenterStyleProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFocusEngagedEventArgs2<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFocusEngagedEventArgs2<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2)->put_Handled(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IFontIcon<D>::Glyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_Glyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIcon<D>::Glyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_Glyph(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_FontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_FontSize(value));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_FontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_FontFamily(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_FontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_FontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->get_FontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon)->put_FontStyle(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFontIcon2<D>::IsTextScaleFactorEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon2)->get_IsTextScaleFactorEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIcon2<D>::IsTextScaleFactorEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon2)->put_IsTextScaleFactorEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFontIcon3<D>::MirroredWhenRightToLeft() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon3)->get_MirroredWhenRightToLeft(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIcon3<D>::MirroredWhenRightToLeft(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIcon3)->put_MirroredWhenRightToLeft(value));
}

template <typename D> Windows::UI::Xaml::Controls::FontIcon consume_Windows_UI_Xaml_Controls_IFontIconFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::FontIcon value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::Glyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_Glyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::Glyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_Glyph(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_FontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_FontSize(value));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_FontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_FontFamily(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_FontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_FontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_FontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_FontStyle(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::IsTextScaleFactorEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_IsTextScaleFactorEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::IsTextScaleFactorEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_IsTextScaleFactorEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::MirroredWhenRightToLeft() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->get_MirroredWhenRightToLeft(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::MirroredWhenRightToLeft(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSource)->put_MirroredWhenRightToLeft(value));
}

template <typename D> Windows::UI::Xaml::Controls::FontIconSource consume_Windows_UI_Xaml_Controls_IFontIconSourceFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::FontIconSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::GlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_GlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_FontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_FontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_FontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_FontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::IsTextScaleFactorEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_IsTextScaleFactorEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::MirroredWhenRightToLeftProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceStatics)->get_MirroredWhenRightToLeftProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::GlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_GlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_FontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_FontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_FontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics)->get_FontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconStatics2<D>::IsTextScaleFactorEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics2)->get_IsTextScaleFactorEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFontIconStatics3<D>::MirroredWhenRightToLeftProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconStatics3)->get_MirroredWhenRightToLeftProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IFrame<D>::CacheSize() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_CacheSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::CacheSize(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->put_CacheSize(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFrame<D>::CanGoBack() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_CanGoBack(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFrame<D>::CanGoForward() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_CanGoForward(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Interop::TypeName consume_Windows_UI_Xaml_Controls_IFrame<D>::CurrentSourcePageType() const
{
    Windows::UI::Xaml::Interop::TypeName value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_CurrentSourcePageType(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Interop::TypeName consume_Windows_UI_Xaml_Controls_IFrame<D>::SourcePageType() const
{
    Windows::UI::Xaml::Interop::TypeName value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_SourcePageType(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::SourcePageType(Windows::UI::Xaml::Interop::TypeName const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->put_SourcePageType(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IFrame<D>::BackStackDepth() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->get_BackStackDepth(&value));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(Windows::UI::Xaml::Navigation::NavigatedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_Navigated(get_abi(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> void consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_Navigated(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_Navigating(get_abi(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> void consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_Navigating(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_NavigationFailed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_NavigationFailed(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_NavigationStopped(get_abi(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> void consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_NavigationStopped(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::GoBack() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->GoBack());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::GoForward() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->GoForward());
}

template <typename D> bool 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_SHIM(Windows::UI::Xaml::Controls::IFrame)->Navigate(get_abi(sourcePageType), get_abi(parameter), &result));
    return result;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IFrame<D>::GetNavigationState() const
{
    hstring result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->GetNavigationState(put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::SetNavigationState(param::hstring const& navigationState) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->SetNavigationState(get_abi(navigationState)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry> consume_Windows_UI_Xaml_Controls_IFrame2<D>::BackStack() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame2)->get_BackStack(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry> consume_Windows_UI_Xaml_Controls_IFrame2<D>::ForwardStack() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame2)->get_ForwardStack(put_abi(value)));
    return value;
}

template <typename D> bool 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_SHIM(Windows::UI::Xaml::Controls::IFrame2)->Navigate(get_abi(sourcePageType), get_abi(parameter), get_abi(infoOverride), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame3<D>::GoBack(Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const& transitionInfoOverride) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame3)->GoBack(get_abi(transitionInfoOverride)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame4<D>::SetNavigationState(param::hstring const& navigationState, bool suppressNavigate) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame4)->SetNavigationStateWithNavigationControl(get_abi(navigationState), suppressNavigate));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IFrame5<D>::IsNavigationStackEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame5)->get_IsNavigationStackEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame5<D>::IsNavigationStackEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame5)->put_IsNavigationStackEnabled(value));
}

template <typename D> bool 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_SHIM(Windows::UI::Xaml::Controls::IFrame5)->NavigateToType(get_abi(sourcePageType), get_abi(parameter), get_abi(navigationOptions), &result));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::Frame consume_Windows_UI_Xaml_Controls_IFrameFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Frame value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CacheSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_CacheSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CanGoBackProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_CanGoBackProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CanGoForwardProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_CanGoForwardProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CurrentSourcePageTypeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_CurrentSourcePageTypeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::SourcePageTypeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_SourcePageTypeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::BackStackDepthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics)->get_BackStackDepthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics2<D>::BackStackProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics2)->get_BackStackProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics2<D>::ForwardStackProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics2)->get_ForwardStackProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IFrameStatics5<D>::IsNavigationStackEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameStatics5)->get_IsNavigationStackEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::RowDefinitionCollection consume_Windows_UI_Xaml_Controls_IGrid<D>::RowDefinitions() const
{
    Windows::UI::Xaml::Controls::RowDefinitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid)->get_RowDefinitions(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ColumnDefinitionCollection consume_Windows_UI_Xaml_Controls_IGrid<D>::ColumnDefinitions() const
{
    Windows::UI::Xaml::Controls::ColumnDefinitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid)->get_ColumnDefinitions(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid2)->get_BorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid2)->put_BorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderThickness() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid2)->get_BorderThickness(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid2)->put_BorderThickness(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::CornerRadius consume_Windows_UI_Xaml_Controls_IGrid2<D>::CornerRadius() const
{
    Windows::UI::Xaml::CornerRadius value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid2)->get_CornerRadius(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGrid2<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid2)->put_CornerRadius(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IGrid2<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid2)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGrid2<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid2)->put_Padding(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IGrid3<D>::RowSpacing() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid3)->get_RowSpacing(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGrid3<D>::RowSpacing(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid3)->put_RowSpacing(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IGrid3<D>::ColumnSpacing() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid3)->get_ColumnSpacing(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGrid3<D>::ColumnSpacing(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid3)->put_ColumnSpacing(value));
}

template <typename D> Windows::UI::Xaml::Controls::BackgroundSizing consume_Windows_UI_Xaml_Controls_IGrid4<D>::BackgroundSizing() const
{
    Windows::UI::Xaml::Controls::BackgroundSizing value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid4)->get_BackgroundSizing(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGrid4<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGrid4)->put_BackgroundSizing(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Grid consume_Windows_UI_Xaml_Controls_IGridFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Grid value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics<D>::RowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->get_RowProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetRow(Windows::UI::Xaml::FrameworkElement const& element) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetRow(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetRow(Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->SetRow(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics<D>::ColumnProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->get_ColumnProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetColumn(Windows::UI::Xaml::FrameworkElement const& element) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetColumn(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetColumn(Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->SetColumn(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics<D>::RowSpanProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->get_RowSpanProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetRowSpan(Windows::UI::Xaml::FrameworkElement const& element) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetRowSpan(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetRowSpan(Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->SetRowSpan(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics<D>::ColumnSpanProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->get_ColumnSpanProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetColumnSpan(Windows::UI::Xaml::FrameworkElement const& element) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetColumnSpan(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetColumnSpan(Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->SetColumnSpan(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::BorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics2)->get_BorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::BorderThicknessProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics2)->get_BorderThicknessProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::CornerRadiusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics2)->get_CornerRadiusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics2)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics3<D>::RowSpacingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics3)->get_RowSpacingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics3<D>::ColumnSpacingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics3)->get_ColumnSpacingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IGridStatics4<D>::BackgroundSizingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics4)->get_BackgroundSizingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::GridView consume_Windows_UI_Xaml_Controls_IGridViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::GridView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::GridViewHeaderItem consume_Windows_UI_Xaml_Controls_IGridViewHeaderItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::GridViewHeaderItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings consume_Windows_UI_Xaml_Controls_IGridViewItem<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridViewItem)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::GridViewItem consume_Windows_UI_Xaml_Controls_IGridViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::GridViewItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridViewItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::GroupItem consume_Windows_UI_Xaml_Controls_IGroupItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::GroupItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ItemsPanelTemplate consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::Panel() const
{
    Windows::UI::Xaml::Controls::ItemsPanelTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_Panel(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::Panel(Windows::UI::Xaml::Controls::ItemsPanelTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_Panel(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_ContainerStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_ContainerStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::StyleSelector consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyleSelector() const
{
    Windows::UI::Xaml::Controls::StyleSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_ContainerStyleSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyleSelector(Windows::UI::Xaml::Controls::StyleSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_ContainerStyleSelector(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::DataTemplateSelector consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplateSelector() const
{
    Windows::UI::Xaml::Controls::DataTemplateSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_HeaderTemplateSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_HeaderTemplateSelector(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HidesIfEmpty() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->get_HidesIfEmpty(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HidesIfEmpty(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle)->put_HidesIfEmpty(value));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IGroupStyle2<D>::HeaderContainerStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle2)->get_HeaderContainerStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IGroupStyle2<D>::HeaderContainerStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyle2)->put_HeaderContainerStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::GroupStyle consume_Windows_UI_Xaml_Controls_IGroupStyleFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::GroupStyle value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyleFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::GroupStyle consume_Windows_UI_Xaml_Controls_IGroupStyleSelector<D>::SelectGroupStyle(Windows::Foundation::IInspectable const& group, uint32_t level) const
{
    Windows::UI::Xaml::Controls::GroupStyle result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelector)->SelectGroupStyle(get_abi(group), level, put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::GroupStyleSelector consume_Windows_UI_Xaml_Controls_IGroupStyleSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::GroupStyleSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::GroupStyle consume_Windows_UI_Xaml_Controls_IGroupStyleSelectorOverrides<D>::SelectGroupStyleCore(Windows::Foundation::IInspectable const& group, uint32_t level) const
{
    Windows::UI::Xaml::Controls::GroupStyle result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides)->SelectGroupStyleCore(get_abi(group), level, put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementTarget() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->get_PlacementTarget(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementTarget(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->put_PlacementTarget(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementAlignment() const
{
    Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->get_PlacementAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementAlignment(Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->put_PlacementAlignment(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::IsOpen() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->get_IsOpen(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::AreCandidatesEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->get_AreCandidatesEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::AreCandidatesEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->put_AreCandidatesEnabled(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->add_Opened(get_abi(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> void consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->remove_Opened(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->add_Closed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->remove_Closed(get_abi(token)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::TryClose() const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->TryClose(&result));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::TryOpen() const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->TryOpen(&result));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::HandwritingView consume_Windows_UI_Xaml_Controls_IHandwritingViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::HandwritingView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::PlacementTargetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewStatics)->get_PlacementTargetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::PlacementAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewStatics)->get_PlacementAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::IsOpenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewStatics)->get_IsOpenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::AreCandidatesEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewStatics)->get_AreCandidatesEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IHub<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHub<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IHub<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHub<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IHub<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHub<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->put_Orientation(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IHub<D>::DefaultSectionIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->get_DefaultSectionIndex(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHub<D>::DefaultSectionIndex(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->put_DefaultSectionIndex(value));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection> consume_Windows_UI_Xaml_Controls_IHub<D>::Sections() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->get_Sections(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection> consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInView() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->get_SectionsInView(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IObservableVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaders() const
{
    Windows::Foundation::Collections::IObservableVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->get_SectionHeaders(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->add_SectionHeaderClick(get_abi(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> void consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->remove_SectionHeaderClick(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->add_SectionsInViewChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->remove_SectionsInViewChanged(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHub<D>::ScrollToSection(Windows::UI::Xaml::Controls::HubSection const& section) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->ScrollToSection(get_abi(section)));
}

template <typename D> Windows::UI::Xaml::Controls::Hub consume_Windows_UI_Xaml_Controls_IHubFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Hub value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IHubSection<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSection)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHubSection<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSection)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IHubSection<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSection)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHubSection<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSection)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IHubSection<D>::ContentTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSection)->get_ContentTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHubSection<D>::ContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSection)->put_ContentTemplate(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IHubSection<D>::IsHeaderInteractive() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSection)->get_IsHeaderInteractive(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHubSection<D>::IsHeaderInteractive(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSection)->put_IsHeaderInteractive(value));
}

template <typename D> Windows::UI::Xaml::Controls::HubSection consume_Windows_UI_Xaml_Controls_IHubSectionFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::HubSection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSectionFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::HubSection consume_Windows_UI_Xaml_Controls_IHubSectionHeaderClickEventArgs<D>::Section() const
{
    Windows::UI::Xaml::Controls::HubSection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs)->get_Section(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSectionStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSectionStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::ContentTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSectionStatics)->get_ContentTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::IsHeaderInteractiveProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSectionStatics)->get_IsHeaderInteractiveProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubStatics<D>::DefaultSectionIndexProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_DefaultSectionIndexProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubStatics<D>::SemanticZoomOwnerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_SemanticZoomOwnerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubStatics<D>::IsActiveViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_IsActiveViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHubStatics<D>::IsZoomedInViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubStatics)->get_IsZoomedInViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IHyperlinkButton<D>::NavigateUri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButton)->get_NavigateUri(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHyperlinkButton<D>::NavigateUri(Windows::Foundation::Uri const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButton)->put_NavigateUri(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::HyperlinkButton consume_Windows_UI_Xaml_Controls_IHyperlinkButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::HyperlinkButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IHyperlinkButtonStatics<D>::NavigateUriProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButtonStatics)->get_NavigateUriProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IIconElement<D>::Foreground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconElement)->get_Foreground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IIconElement<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconElement)->put_Foreground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IIconElementStatics<D>::ForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconElementStatics)->get_ForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IIconSource<D>::Foreground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconSource)->get_Foreground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IIconSource<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconSource)->put_Foreground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::IconSource consume_Windows_UI_Xaml_Controls_IIconSourceElement<D>::IconSource() const
{
    Windows::UI::Xaml::Controls::IconSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconSourceElement)->get_IconSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IIconSourceElement<D>::IconSource(Windows::UI::Xaml::Controls::IconSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconSourceElement)->put_IconSource(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::IconSourceElement consume_Windows_UI_Xaml_Controls_IIconSourceElementFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::IconSourceElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconSourceElementFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IIconSourceElementStatics<D>::IconSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconSourceElementStatics)->get_IconSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IIconSourceStatics<D>::ForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IIconSourceStatics)->get_ForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IImage<D>::Source() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->get_Source(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IImage<D>::Source(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->put_Source(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Stretch consume_Windows_UI_Xaml_Controls_IImage<D>::Stretch() const
{
    Windows::UI::Xaml::Media::Stretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->get_Stretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IImage<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->put_Stretch(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IImage<D>::NineGrid() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->get_NineGrid(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IImage<D>::NineGrid(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->put_NineGrid(get_abi(value)));
}

template <typename D> Windows::Media::PlayTo::PlayToSource consume_Windows_UI_Xaml_Controls_IImage<D>::PlayToSource() const
{
    Windows::Media::PlayTo::PlayToSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->get_PlayToSource(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->add_ImageFailed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->remove_ImageFailed(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->add_ImageOpened(get_abi(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> void consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->remove_ImageOpened(get_abi(token)));
}

template <typename D> Windows::Media::Casting::CastingSource consume_Windows_UI_Xaml_Controls_IImage2<D>::GetAsCastingSource() const
{
    Windows::Media::Casting::CastingSource result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage2)->GetAsCastingSource(put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Composition::CompositionBrush consume_Windows_UI_Xaml_Controls_IImage3<D>::GetAlphaMask() const
{
    Windows::UI::Composition::CompositionBrush result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage3)->GetAlphaMask(put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IImageStatics<D>::SourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImageStatics)->get_SourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IImageStatics<D>::StretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImageStatics)->get_StretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IImageStatics<D>::NineGridProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImageStatics)->get_NineGridProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IImageStatics<D>::PlayToSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImageStatics)->get_PlayToSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Input::Inking::InkPresenter consume_Windows_UI_Xaml_Controls_IInkCanvas<D>::InkPresenter() const
{
    Windows::UI::Input::Inking::InkPresenter value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkCanvas)->get_InkPresenter(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkCanvas consume_Windows_UI_Xaml_Controls_IInkCanvasFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkCanvas value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkCanvasFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarInitialControls consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InitialControls() const
{
    Windows::UI::Xaml::Controls::InkToolbarInitialControls value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_InitialControls(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InitialControls(Windows::UI::Xaml::Controls::InkToolbarInitialControls const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->put_InitialControls(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObjectCollection consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::Children() const
{
    Windows::UI::Xaml::DependencyObjectCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_Children(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarToolButton consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveTool() const
{
    Windows::UI::Xaml::Controls::InkToolbarToolButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_ActiveTool(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveTool(Windows::UI::Xaml::Controls::InkToolbarToolButton const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->put_ActiveTool(get_abi(value)));
}

template <typename D> Windows::UI::Input::Inking::InkDrawingAttributes consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributes() const
{
    Windows::UI::Input::Inking::InkDrawingAttributes value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_InkDrawingAttributes(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonChecked() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_IsRulerButtonChecked(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonChecked(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->put_IsRulerButtonChecked(value));
}

template <typename D> Windows::UI::Xaml::Controls::InkCanvas consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::TargetInkCanvas() const
{
    Windows::UI::Xaml::Controls::InkCanvas value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->get_TargetInkCanvas(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::TargetInkCanvas(Windows::UI::Xaml::Controls::InkCanvas const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->put_TargetInkCanvas(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_ActiveToolChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_ActiveToolChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_InkDrawingAttributesChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_InkDrawingAttributesChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_EraseAllClicked(get_abi(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> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_EraseAllClicked(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_IsRulerButtonCheckedChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_IsRulerButtonCheckedChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarToolButton consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::GetToolButton(Windows::UI::Xaml::Controls::InkToolbarTool const& tool) const
{
    Windows::UI::Xaml::Controls::InkToolbarToolButton result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->GetToolButton(get_abi(tool), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarToggleButton consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::GetToggleButton(Windows::UI::Xaml::Controls::InkToolbarToggle const& tool) const
{
    Windows::UI::Xaml::Controls::InkToolbarToggleButton result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->GetToggleButton(get_abi(tool), put_abi(result)));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonChecked() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->get_IsStencilButtonChecked(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonChecked(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->put_IsStencilButtonChecked(value));
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::ButtonFlyoutPlacement() const
{
    Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->get_ButtonFlyoutPlacement(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::ButtonFlyoutPlacement(Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->put_ButtonFlyoutPlacement(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->put_Orientation(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->add_IsStencilButtonCheckedChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->remove_IsStencilButtonCheckedChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarMenuButton consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::GetMenuButton(Windows::UI::Xaml::Controls::InkToolbarMenuKind const& menu) const
{
    Windows::UI::Xaml::Controls::InkToolbarMenuButton result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->GetMenuButton(get_abi(menu), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton consume_Windows_UI_Xaml_Controls_IInkToolbarBallpointPenButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Input::Inking::InkDrawingAttributes consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPen<D>::CreateInkDrawingAttributes(Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth) const
{
    Windows::UI::Input::Inking::InkDrawingAttributes result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPen)->CreateInkDrawingAttributes(get_abi(brush), strokeWidth, put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarCustomPen consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::CustomPen() const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomPen value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton)->get_CustomPen(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::CustomPen(Windows::UI::Xaml::Controls::InkToolbarCustomPen const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton)->put_CustomPen(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::ConfigurationContent() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton)->get_ConfigurationContent(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::ConfigurationContent(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton)->put_ConfigurationContent(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarCustomPenButton consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomPenButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonStatics<D>::CustomPenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics)->get_CustomPenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonStatics<D>::ConfigurationContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics)->get_ConfigurationContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarCustomPen consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomPen value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Input::Inking::InkDrawingAttributes consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenOverrides<D>::CreateInkDrawingAttributesCore(Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth) const
{
    Windows::UI::Input::Inking::InkDrawingAttributes result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides)->CreateInkDrawingAttributesCore(get_abi(brush), strokeWidth, put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToggleButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButton<D>::ConfigurationContent() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton)->get_ConfigurationContent(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButton<D>::ConfigurationContent(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton)->put_ConfigurationContent(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarCustomToolButton consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomToolButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButtonStatics<D>::ConfigurationContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics)->get_ConfigurationContentProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButton2<D>::IsClearAllVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButton2)->get_IsClearAllVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButton2<D>::IsClearAllVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButton2)->put_IsClearAllVisible(value));
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarEraserButton consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarEraserButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButtonStatics2<D>::IsClearAllVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2)->get_IsClearAllVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbar consume_Windows_UI_Xaml_Controls_IInkToolbarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbar value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Kind() const
{
    Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->get_Kind(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Kind(Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->put_Kind(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::IsChecked() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->get_IsChecked(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::IsChecked(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->put_IsChecked(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->add_Checked(get_abi(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> void consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->remove_Checked(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->add_Unchecked(get_abi(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> void consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->remove_Unchecked(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarFlyoutItem consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarFlyoutItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemStatics<D>::KindProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics)->get_KindProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemStatics<D>::IsCheckedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics)->get_IsCheckedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarHighlighterButton consume_Windows_UI_Xaml_Controls_IInkToolbarHighlighterButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarHighlighterButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarStencilButton consume_Windows_UI_Xaml_Controls_IInkToolbarIsStencilButtonCheckedChangedEventArgs<D>::StencilButton() const
{
    Windows::UI::Xaml::Controls::InkToolbarStencilButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs)->get_StencilButton(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarStencilKind consume_Windows_UI_Xaml_Controls_IInkToolbarIsStencilButtonCheckedChangedEventArgs<D>::StencilKind() const
{
    Windows::UI::Xaml::Controls::InkToolbarStencilKind value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs)->get_StencilKind(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarMenuKind consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::MenuKind() const
{
    Windows::UI::Xaml::Controls::InkToolbarMenuKind value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarMenuButton)->get_MenuKind(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::IsExtensionGlyphShown() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarMenuButton)->get_IsExtensionGlyphShown(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::IsExtensionGlyphShown(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarMenuButton)->put_IsExtensionGlyphShown(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButtonStatics<D>::IsExtensionGlyphShownProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics)->get_IsExtensionGlyphShownProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush> consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::Palette() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_Palette(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::Palette(param::vector<Windows::UI::Xaml::Media::Brush> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_Palette(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MinStrokeWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_MinStrokeWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MinStrokeWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_MinStrokeWidth(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MaxStrokeWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_MaxStrokeWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MaxStrokeWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_MaxStrokeWidth(value));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_SelectedBrush(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrushIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_SelectedBrushIndex(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrushIndex(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_SelectedBrushIndex(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedStrokeWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->get_SelectedStrokeWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedStrokeWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButton)->put_SelectedStrokeWidth(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::PaletteProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_PaletteProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::MinStrokeWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_MinStrokeWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::MaxStrokeWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_MaxStrokeWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_SelectedBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedBrushIndexProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_SelectedBrushIndexProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedStrokeWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics)->get_SelectedStrokeWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarPenButton consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControl<D>::PenButton() const
{
    Windows::UI::Xaml::Controls::InkToolbarPenButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl)->get_PenButton(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControlStatics<D>::PenButtonProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics)->get_PenButtonProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarPencilButton consume_Windows_UI_Xaml_Controls_IInkToolbarPencilButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarPencilButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Input::Inking::InkPresenterRuler consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButton<D>::Ruler() const
{
    Windows::UI::Input::Inking::InkPresenterRuler value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarRulerButton)->get_Ruler(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarRulerButton consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarRulerButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButtonStatics<D>::RulerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics)->get_RulerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::InitialControlsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_InitialControlsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::ChildrenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_ChildrenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::ActiveToolProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_ActiveToolProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::InkDrawingAttributesProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_InkDrawingAttributesProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::IsRulerButtonCheckedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_IsRulerButtonCheckedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::TargetInkCanvasProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics)->get_TargetInkCanvasProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::IsStencilButtonCheckedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics2)->get_IsStencilButtonCheckedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::ButtonFlyoutPlacementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics2)->get_ButtonFlyoutPlacementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStatics2)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Input::Inking::InkPresenterRuler consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::Ruler() const
{
    Windows::UI::Input::Inking::InkPresenterRuler value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_Ruler(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Input::Inking::InkPresenterProtractor consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::Protractor() const
{
    Windows::UI::Input::Inking::InkPresenterProtractor value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_Protractor(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarStencilKind consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::SelectedStencil() const
{
    Windows::UI::Xaml::Controls::InkToolbarStencilKind value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_SelectedStencil(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::SelectedStencil(Windows::UI::Xaml::Controls::InkToolbarStencilKind const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->put_SelectedStencil(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsRulerItemVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_IsRulerItemVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsRulerItemVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->put_IsRulerItemVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsProtractorItemVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->get_IsProtractorItemVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsProtractorItemVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButton)->put_IsProtractorItemVisible(value));
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarStencilButton consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::InkToolbarStencilButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::RulerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_RulerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::ProtractorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_ProtractorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::SelectedStencilProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_SelectedStencilProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::IsRulerItemVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_IsRulerItemVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::IsProtractorItemVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics)->get_IsProtractorItemVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarToggle consume_Windows_UI_Xaml_Controls_IInkToolbarToggleButton<D>::ToggleKind() const
{
    Windows::UI::Xaml::Controls::InkToolbarToggle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToggleButton)->get_ToggleKind(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarTool consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::ToolKind() const
{
    Windows::UI::Xaml::Controls::InkToolbarTool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToolButton)->get_ToolKind(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::IsExtensionGlyphShown() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToolButton)->get_IsExtensionGlyphShown(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::IsExtensionGlyphShown(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToolButton)->put_IsExtensionGlyphShown(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IInkToolbarToolButtonStatics<D>::IsExtensionGlyphShownProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics)->get_IsExtensionGlyphShownProperty(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInsertionPanel<D>::GetInsertionIndexes(Windows::Foundation::Point const& position, int32_t& first, int32_t& second) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInsertionPanel)->GetInsertionIndexes(get_abi(position), &first, &second));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IItemClickEventArgs<D>::ClickedItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemClickEventArgs)->get_ClickedItem(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->add_ItemsChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->remove_ItemsChanged(get_abi(token)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ItemFromContainer(get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ContainerFromItem(Windows::Foundation::IInspectable const& item) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ContainerFromItem(get_abi(item), put_abi(result)));
    return result;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::IndexFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->IndexFromContainer(get_abi(container), &result));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ContainerFromIndex(int32_t index) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ContainerFromIndex(index, put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::ItemContainerGenerator consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GetItemContainerGeneratorForPanel(Windows::UI::Xaml::Controls::Panel const& panel) const
{
    Windows::UI::Xaml::Controls::ItemContainerGenerator result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->GetItemContainerGeneratorForPanel(get_abi(panel), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->StartAt(get_abi(position), get_abi(direction), allowStartAtRealizedItem));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Stop() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->Stop());
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GenerateNext(bool& isNewlyRealized) const
{
    Windows::UI::Xaml::DependencyObject returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->GenerateNext(&isNewlyRealized, put_abi(returnValue)));
    return returnValue;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::PrepareItemContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->PrepareItemContainer(get_abi(container)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::RemoveAll() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->RemoveAll());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Remove(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position, int32_t count) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->Remove(get_abi(position), count));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::GeneratorPosition consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GeneratorPositionFromIndex(int32_t itemIndex) const
{
    Windows::UI::Xaml::Controls::Primitives::GeneratorPosition result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->GeneratorPositionFromIndex(itemIndex, put_abi(result)));
    return result;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::IndexFromGeneratorPosition(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->IndexFromGeneratorPosition(get_abi(position), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Recycle(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position, int32_t count) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->Recycle(get_abi(position), count));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ItemFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ItemFromContainer(get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ContainerFromItem(Windows::Foundation::IInspectable const& item) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ContainerFromItem(get_abi(item), put_abi(result)));
    return result;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::IndexFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->IndexFromContainer(get_abi(container), &result));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ContainerFromIndex(int32_t index) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ContainerFromIndex(index, put_abi(result)));
    return result;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsSource() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemsSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsSource(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemsSource(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ItemCollection consume_Windows_UI_Xaml_Controls_IItemsControl<D>::Items() const
{
    Windows::UI::Xaml::Controls::ItemCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_Items(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::DataTemplateSelector consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplateSelector() const
{
    Windows::UI::Xaml::Controls::DataTemplateSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemTemplateSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemTemplateSelector(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ItemsPanelTemplate consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsPanel() const
{
    Windows::UI::Xaml::Controls::ItemsPanelTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemsPanel(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsPanel(Windows::UI::Xaml::Controls::ItemsPanelTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemsPanel(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IItemsControl<D>::DisplayMemberPath() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_DisplayMemberPath(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::DisplayMemberPath(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_DisplayMemberPath(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemContainerStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemContainerStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::StyleSelector consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyleSelector() const
{
    Windows::UI::Xaml::Controls::StyleSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemContainerStyleSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyleSelector(Windows::UI::Xaml::Controls::StyleSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemContainerStyleSelector(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ItemContainerGenerator consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerGenerator() const
{
    Windows::UI::Xaml::Controls::ItemContainerGenerator value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemContainerGenerator(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_ItemContainerTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_ItemContainerTransitions(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::GroupStyle> consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyle() const
{
    Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::GroupStyle> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_GroupStyle(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::GroupStyleSelector consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyleSelector() const
{
    Windows::UI::Xaml::Controls::GroupStyleSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_GroupStyleSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyleSelector(Windows::UI::Xaml::Controls::GroupStyleSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->put_GroupStyleSelector(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IItemsControl<D>::IsGrouping() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl)->get_IsGrouping(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Panel consume_Windows_UI_Xaml_Controls_IItemsControl2<D>::ItemsPanelRoot() const
{
    Windows::UI::Xaml::Controls::Panel value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl2)->get_ItemsPanelRoot(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemsControl3<D>::GroupHeaderContainerFromItemContainer(Windows::UI::Xaml::DependencyObject const& itemContainer) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl3)->GroupHeaderContainerFromItemContainer(get_abi(itemContainer), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::ItemsControl consume_Windows_UI_Xaml_Controls_IItemsControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ItemsControl value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::IsItemItsOwnContainerOverride(Windows::Foundation::IInspectable const& item) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->IsItemItsOwnContainerOverride(get_abi(item), &result));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::GetContainerForItemOverride() const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->GetContainerForItemOverride(put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::ClearContainerForItemOverride(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& item) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->ClearContainerForItemOverride(get_abi(element), get_abi(item)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::PrepareContainerForItemOverride(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& item) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->PrepareContainerForItemOverride(get_abi(element), get_abi(item)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemsChanged(Windows::Foundation::IInspectable const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemsChanged(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemContainerStyleChanged(Windows::UI::Xaml::Style const& oldItemContainerStyle, Windows::UI::Xaml::Style const& newItemContainerStyle) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemContainerStyleChanged(get_abi(oldItemContainerStyle), get_abi(newItemContainerStyle)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemContainerStyleSelectorChanged(get_abi(oldItemContainerStyleSelector), get_abi(newItemContainerStyleSelector)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldItemTemplate, Windows::UI::Xaml::DataTemplate const& newItemTemplate) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemTemplateChanged(get_abi(oldItemTemplate), get_abi(newItemTemplate)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnItemTemplateSelectorChanged(get_abi(oldItemTemplateSelector), get_abi(newItemTemplateSelector)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->OnGroupStyleSelectorChanged(get_abi(oldGroupStyleSelector), get_abi(newGroupStyleSelector)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemsSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemTemplateSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemTemplateSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsPanelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemsPanelProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::DisplayMemberPathProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_DisplayMemberPathProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemContainerStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerStyleSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemContainerStyleSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_ItemContainerTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::GroupStyleSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_GroupStyleSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::IsGroupingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->get_IsGroupingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ItemsControl consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::GetItemsOwner(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::UI::Xaml::Controls::ItemsControl result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->GetItemsOwner(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::ItemsControl consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsControlFromItemContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::UI::Xaml::Controls::ItemsControl result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->ItemsControlFromItemContainer(get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_IItemsPickedEventArgs<D>::AddedItems() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPickedEventArgs)->get_AddedItems(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_IItemsPickedEventArgs<D>::RemovedItems() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPickedEventArgs)->get_RemovedItems(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->get_HeaderTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->put_HeaderTransitions(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter)->put_Padding(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::Footer() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->get_Footer(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::Footer(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->put_Footer(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->get_FooterTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->put_FooterTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->get_FooterTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenter2)->put_FooterTransitions(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics)->get_HeaderTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics2)->get_FooterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics2)->get_FooterTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsPresenterStatics2)->get_FooterTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupPadding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_GroupPadding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupPadding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_GroupPadding(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_Orientation(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::FirstCacheIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_FirstCacheIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::FirstVisibleIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_FirstVisibleIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::LastVisibleIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_LastVisibleIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::LastCacheIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_LastCacheIndex(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::PanelScrollingDirection consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ScrollingDirection() const
{
    Windows::UI::Xaml::Controls::PanelScrollingDirection value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_ScrollingDirection(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupHeaderPlacement() const
{
    Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_GroupHeaderPlacement(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_GroupHeaderPlacement(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ItemsUpdatingScrollMode() const
{
    Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_ItemsUpdatingScrollMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ItemsUpdatingScrollMode(Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_ItemsUpdatingScrollMode(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::CacheLength() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->get_CacheLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::CacheLength(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel)->put_CacheLength(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IItemsStackPanel2<D>::AreStickyGroupHeadersEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel2)->get_AreStickyGroupHeadersEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsStackPanel2<D>::AreStickyGroupHeadersEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanel2)->put_AreStickyGroupHeadersEnabled(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::GroupPaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics)->get_GroupPaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::GroupHeaderPlacementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics)->get_GroupHeaderPlacementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::CacheLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics)->get_CacheLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics2<D>::AreStickyGroupHeadersEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsStackPanelStatics2)->get_AreStickyGroupHeadersEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupPadding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_GroupPadding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupPadding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_GroupPadding(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_Orientation(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::MaximumRowsOrColumns() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_MaximumRowsOrColumns(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_MaximumRowsOrColumns(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_ItemWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_ItemWidth(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_ItemHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_ItemHeight(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::FirstCacheIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_FirstCacheIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::FirstVisibleIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_FirstVisibleIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::LastVisibleIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_LastVisibleIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::LastCacheIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_LastCacheIndex(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::PanelScrollingDirection consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ScrollingDirection() const
{
    Windows::UI::Xaml::Controls::PanelScrollingDirection value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_ScrollingDirection(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupHeaderPlacement() const
{
    Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_GroupHeaderPlacement(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_GroupHeaderPlacement(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::CacheLength() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->get_CacheLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::CacheLength(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid)->put_CacheLength(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IItemsWrapGrid2<D>::AreStickyGroupHeadersEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid2)->get_AreStickyGroupHeadersEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemsWrapGrid2<D>::AreStickyGroupHeadersEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGrid2)->put_AreStickyGroupHeadersEnabled(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::GroupPaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_GroupPaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_MaximumRowsOrColumnsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::ItemWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_ItemWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::ItemHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_ItemHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::GroupHeaderPlacementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_GroupHeaderPlacementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::CacheLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics)->get_CacheLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics2<D>::AreStickyGroupHeadersEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsWrapGridStatics2)->get_AreStickyGroupHeadersEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectedItems() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBox)->get_SelectedItems(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::SelectionMode consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectionMode() const
{
    Windows::UI::Xaml::Controls::SelectionMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBox)->get_SelectionMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectionMode(Windows::UI::Xaml::Controls::SelectionMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBox)->put_SelectionMode(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListBox<D>::ScrollIntoView(Windows::Foundation::IInspectable const& item) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBox)->ScrollIntoView(get_abi(item)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectAll() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBox)->SelectAll());
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListBox2<D>::SingleSelectionFollowsFocus() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBox2)->get_SingleSelectionFollowsFocus(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListBox2<D>::SingleSelectionFollowsFocus(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBox2)->put_SingleSelectionFollowsFocus(value));
}

template <typename D> Windows::UI::Xaml::Controls::ListBox consume_Windows_UI_Xaml_Controls_IListBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ListBox value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBoxFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ListBoxItem consume_Windows_UI_Xaml_Controls_IListBoxItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ListBoxItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBoxItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListBoxStatics<D>::SelectionModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBoxStatics)->get_SelectionModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListBoxStatics2<D>::SingleSelectionFollowsFocusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBoxStatics2)->get_SingleSelectionFollowsFocusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsSource() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_ItemsSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsSource(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_ItemsSource(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_ItemTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_ItemTemplate(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::DisplayMemberPath() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_DisplayMemberPath(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::DisplayMemberPath(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_DisplayMemberPath(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectionMode() const
{
    Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectionMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectionMode(Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectionMode(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedIndex(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedIndex(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectedIndex(value));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedItem(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItem(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectedItem(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValue() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedValue(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValue(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectedValue(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValuePath() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedValuePath(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValuePath(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->put_SelectedValuePath(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItems() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->get_SelectedItems(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->add_ItemsPicked(get_abi(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> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->remove_ItemsPicked(get_abi(token)));
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>> consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ShowAtAsync(Windows::UI::Xaml::FrameworkElement const& target) const
{
    Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->ShowAtAsync(get_abi(target), put_abi(operation)));
    return operation;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::ItemsSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_ItemsSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::ItemTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_ItemTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::DisplayMemberPathProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_DisplayMemberPathProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectionModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectionModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedIndexProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectedIndexProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedItemProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectedItemProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedValueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectedValueProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedValuePathProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyoutStatics)->get_SelectedValuePathProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectedItems() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_SelectedItems(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ListViewSelectionMode consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectionMode() const
{
    Windows::UI::Xaml::Controls::ListViewSelectionMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_SelectionMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectionMode(Windows::UI::Xaml::Controls::ListViewSelectionMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_SelectionMode(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsSwipeEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_IsSwipeEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsSwipeEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_IsSwipeEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanDragItems() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_CanDragItems(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanDragItems(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_CanDragItems(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanReorderItems() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_CanReorderItems(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanReorderItems(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_CanReorderItems(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsItemClickEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_IsItemClickEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsItemClickEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_IsItemClickEnabled(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DataFetchSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_DataFetchSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DataFetchSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_DataFetchSize(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingThreshold() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_IncrementalLoadingThreshold(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingThreshold(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_IncrementalLoadingThreshold(value));
}

template <typename D> Windows::UI::Xaml::Controls::IncrementalLoadingTrigger consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingTrigger() const
{
    Windows::UI::Xaml::Controls::IncrementalLoadingTrigger value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_IncrementalLoadingTrigger(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingTrigger(Windows::UI::Xaml::Controls::IncrementalLoadingTrigger const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_IncrementalLoadingTrigger(get_abi(value)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(Windows::UI::Xaml::Controls::ItemClickEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->add_ItemClick(get_abi(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> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->remove_ItemClick(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->add_DragItemsStarting(get_abi(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> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->remove_DragItemsStarting(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ScrollIntoView(Windows::Foundation::IInspectable const& item) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->ScrollIntoView(get_abi(item)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectAll() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->SelectAll());
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Data::LoadMoreItemsResult> consume_Windows_UI_Xaml_Controls_IListViewBase<D>::LoadMoreItemsAsync() const
{
    Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Data::LoadMoreItemsResult> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->LoadMoreItemsAsync(put_abi(operation)));
    return operation;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ScrollIntoView(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::Controls::ScrollIntoViewAlignment const& alignment) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->ScrollIntoViewWithAlignment(get_abi(item), get_abi(alignment)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IListViewBase<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->get_HeaderTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->put_HeaderTransitions(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ShowsScrollingPlaceholders() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->get_ShowsScrollingPlaceholders(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ShowsScrollingPlaceholders(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->put_ShowsScrollingPlaceholders(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->add_ContainerContentChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->remove_ContainerContentChanging(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::SetDesiredContainerUpdateDuration(Windows::Foundation::TimeSpan const& duration) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->SetDesiredContainerUpdateDuration(get_abi(duration)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::Footer() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->get_Footer(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::Footer(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->put_Footer(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->get_FooterTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->put_FooterTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->get_FooterTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->put_FooterTransitions(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ListViewReorderMode consume_Windows_UI_Xaml_Controls_IListViewBase3<D>::ReorderMode() const
{
    Windows::UI::Xaml::Controls::ListViewReorderMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase3)->get_ReorderMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase3<D>::ReorderMode(Windows::UI::Xaml::Controls::ListViewReorderMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase3)->put_ReorderMode(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVectorView<Windows::UI::Xaml::Data::ItemIndexRange> consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::SelectedRanges() const
{
    Windows::Foundation::Collections::IVectorView<Windows::UI::Xaml::Data::ItemIndexRange> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->get_SelectedRanges(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::IsMultiSelectCheckBoxEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->get_IsMultiSelectCheckBoxEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::IsMultiSelectCheckBoxEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->put_IsMultiSelectCheckBoxEnabled(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_DragItemsCompleted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->remove_DragItemsCompleted(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_ChoosingItemContainer(get_abi(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> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->remove_ChoosingItemContainer(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_ChoosingGroupHeaderContainer(get_abi(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> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->remove_ChoosingGroupHeaderContainer(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::SelectRange(Windows::UI::Xaml::Data::ItemIndexRange const& itemIndexRange) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->SelectRange(get_abi(itemIndexRange)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DeselectRange(Windows::UI::Xaml::Data::ItemIndexRange const& itemIndexRange) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->DeselectRange(get_abi(itemIndexRange)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::SingleSelectionFollowsFocus() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase5)->get_SingleSelectionFollowsFocus(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::SingleSelectionFollowsFocus(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase5)->put_SingleSelectionFollowsFocus(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::IsDragSource() const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase5)->IsDragSource(&result));
    return result;
}

template <typename D> Windows::Foundation::IAsyncOperation<bool> 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
{
    Windows::Foundation::IAsyncOperation<bool> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase6)->TryStartConnectedAnimationAsync(get_abi(animation), get_abi(item), get_abi(elementName), put_abi(operation)));
    return operation;
}

template <typename D> Windows::UI::Xaml::Media::Animation::ConnectedAnimation consume_Windows_UI_Xaml_Controls_IListViewBase6<D>::PrepareConnectedAnimation(param::hstring const& key, Windows::Foundation::IInspectable const& item, param::hstring const& elementName) const
{
    Windows::UI::Xaml::Media::Animation::ConnectedAnimation result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase6)->PrepareConnectedAnimation(get_abi(key), get_abi(item), get_abi(elementName), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::ListViewBase consume_Windows_UI_Xaml_Controls_IListViewBaseFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ListViewBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::SelectionModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_SelectionModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsSwipeEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IsSwipeEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::CanDragItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_CanDragItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::CanReorderItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_CanReorderItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsItemClickEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IsItemClickEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::DataFetchSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_DataFetchSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IncrementalLoadingThresholdProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IncrementalLoadingThresholdProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IncrementalLoadingTriggerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IncrementalLoadingTriggerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::SemanticZoomOwnerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_SemanticZoomOwnerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsActiveViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IsActiveViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsZoomedInViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_IsZoomedInViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics)->get_HeaderTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::ShowsScrollingPlaceholdersProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics2)->get_ShowsScrollingPlaceholdersProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics2)->get_FooterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics2)->get_FooterTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics2)->get_FooterTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics3<D>::ReorderModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics3)->get_ReorderModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics4<D>::IsMultiSelectCheckBoxEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics4)->get_IsMultiSelectCheckBoxEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IListViewBaseStatics5<D>::SingleSelectionFollowsFocusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseStatics5)->get_SingleSelectionFollowsFocusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ListView consume_Windows_UI_Xaml_Controls_IListViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ListView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ListViewHeaderItem consume_Windows_UI_Xaml_Controls_IListViewHeaderItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ListViewHeaderItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewHeaderItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings consume_Windows_UI_Xaml_Controls_IListViewItem<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewItem)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ListViewItem consume_Windows_UI_Xaml_Controls_IListViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ListViewItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IListViewPersistenceHelperStatics<D>::GetRelativeScrollPosition(Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const& itemToKeyHandler) const
{
    hstring result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics)->GetRelativeScrollPosition(get_abi(listViewBase), get_abi(itemToKeyHandler), put_abi(result)));
    return result;
}

template <typename D> Windows::Foundation::IAsyncAction 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
{
    Windows::Foundation::IAsyncAction operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics)->SetRelativeScrollPositionAsync(get_abi(listViewBase), get_abi(relativeScrollPosition), get_abi(keyToItemHandler), put_abi(operation)));
    return operation;
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PosterSource() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_PosterSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PosterSource(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_PosterSource(get_abi(value)));
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Source() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Source(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Source(Windows::Foundation::Uri const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Source(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsMuted() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_IsMuted(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsMuted(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_IsMuted(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsAudioOnly() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_IsAudioOnly(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AutoPlay() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AutoPlay(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AutoPlay(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_AutoPlay(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Volume() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Volume(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Volume(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Volume(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Balance() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Balance(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Balance(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Balance(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalVideoHeight() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_NaturalVideoHeight(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalVideoWidth() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_NaturalVideoWidth(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Duration consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalDuration() const
{
    Windows::UI::Xaml::Duration value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_NaturalDuration(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::TimeSpan consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Position() const
{
    Windows::Foundation::TimeSpan value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Position(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Position(Windows::Foundation::TimeSpan const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Position(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgress() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_DownloadProgress(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgress() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_BufferingProgress(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_DownloadProgressOffset(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::MediaElementState consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentState() const
{
    Windows::UI::Xaml::Media::MediaElementState value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_CurrentState(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::TimelineMarkerCollection consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Markers() const
{
    Windows::UI::Xaml::Media::TimelineMarkerCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Markers(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanSeek() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_CanSeek(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanPause() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_CanPause(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamCount() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AudioStreamCount(&value));
    return value;
}

template <typename D> Windows::Foundation::IReference<int32_t> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamIndex() const
{
    Windows::Foundation::IReference<int32_t> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AudioStreamIndex(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamIndex(optional<int32_t> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_AudioStreamIndex(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlaybackRate() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_PlaybackRate(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlaybackRate(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_PlaybackRate(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsLooping() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_IsLooping(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsLooping(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_IsLooping(value));
}

template <typename D> Windows::Media::PlayTo::PlayToSource consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlayToSource() const
{
    Windows::Media::PlayTo::PlayToSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_PlayToSource(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DefaultPlaybackRate() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_DefaultPlaybackRate(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DefaultPlaybackRate(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_DefaultPlaybackRate(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AspectRatioWidth() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AspectRatioWidth(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AspectRatioHeight() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AspectRatioHeight(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RealTimePlayback() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_RealTimePlayback(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RealTimePlayback(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_RealTimePlayback(value));
}

template <typename D> Windows::UI::Xaml::Media::AudioCategory consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioCategory() const
{
    Windows::UI::Xaml::Media::AudioCategory value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AudioCategory(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioCategory(Windows::UI::Xaml::Media::AudioCategory const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_AudioCategory(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::AudioDeviceType consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioDeviceType() const
{
    Windows::UI::Xaml::Media::AudioDeviceType value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_AudioDeviceType(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioDeviceType(Windows::UI::Xaml::Media::AudioDeviceType const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_AudioDeviceType(get_abi(value)));
}

template <typename D> Windows::Media::Protection::MediaProtectionManager consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ProtectionManager() const
{
    Windows::Media::Protection::MediaProtectionManager value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_ProtectionManager(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ProtectionManager(Windows::Media::Protection::MediaProtectionManager const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_ProtectionManager(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Stereo3DVideoPackingMode consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoPackingMode() const
{
    Windows::UI::Xaml::Media::Stereo3DVideoPackingMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Stereo3DVideoPackingMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoPackingMode(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Stereo3DVideoPackingMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Stereo3DVideoRenderMode consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoRenderMode() const
{
    Windows::UI::Xaml::Media::Stereo3DVideoRenderMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_Stereo3DVideoRenderMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoRenderMode(Windows::UI::Xaml::Media::Stereo3DVideoRenderMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->put_Stereo3DVideoRenderMode(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsStereo3DVideo() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_IsStereo3DVideo(&value));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaOpened(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaOpened(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaEnded(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaEnded(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaFailed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaFailed(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_DownloadProgressChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_DownloadProgressChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_BufferingProgressChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_BufferingProgressChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_CurrentStateChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_CurrentStateChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MarkerReached(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MarkerReached(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_RateChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_RateChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_VolumeChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_VolumeChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_SeekCompleted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_SeekCompleted(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stop() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->Stop());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Play() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->Play());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Pause() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->Pause());
}

template <typename D> Windows::UI::Xaml::Media::MediaCanPlayResponse consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanPlayType(param::hstring const& type) const
{
    Windows::UI::Xaml::Media::MediaCanPlayResponse result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->CanPlayType(get_abi(type), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SetSource(Windows::Storage::Streams::IRandomAccessStream const& stream, param::hstring const& mimeType) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->SetSource(get_abi(stream), get_abi(mimeType)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IMediaElement<D>::GetAudioStreamLanguage(optional<int32_t> const& index) const
{
    hstring result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->GetAudioStreamLanguage(get_abi(index), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AddAudioEffect(param::hstring const& effectID, bool effectOptional, Windows::Foundation::Collections::IPropertySet const& effectConfiguration) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->AddAudioEffect(get_abi(effectID), effectOptional, get_abi(effectConfiguration)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AddVideoEffect(param::hstring const& effectID, bool effectOptional, Windows::Foundation::Collections::IPropertySet const& effectConfiguration) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->AddVideoEffect(get_abi(effectID), effectOptional, get_abi(effectConfiguration)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RemoveAllEffects() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->RemoveAllEffects());
}

template <typename D> Windows::UI::Xaml::Media::Stereo3DVideoPackingMode consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ActualStereo3DVideoPackingMode() const
{
    Windows::UI::Xaml::Media::Stereo3DVideoPackingMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->get_ActualStereo3DVideoPackingMode(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::AreTransportControlsEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->get_AreTransportControlsEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::AreTransportControlsEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->put_AreTransportControlsEnabled(value));
}

template <typename D> Windows::UI::Xaml::Media::Stretch consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::Stretch() const
{
    Windows::UI::Xaml::Media::Stretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->get_Stretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->put_Stretch(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::IsFullWindow() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->get_IsFullWindow(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::IsFullWindow(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->put_IsFullWindow(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::SetMediaStreamSource(Windows::Media::Core::IMediaSource const& source) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->SetMediaStreamSource(get_abi(source)));
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::PlayToPreferredSourceUri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->get_PlayToPreferredSourceUri(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::PlayToPreferredSourceUri(Windows::Foundation::Uri const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement2)->put_PlayToPreferredSourceUri(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::MediaTransportControls consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::TransportControls() const
{
    Windows::UI::Xaml::Controls::MediaTransportControls value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->get_TransportControls(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::TransportControls(Windows::UI::Xaml::Controls::MediaTransportControls const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->put_TransportControls(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->add_PartialMediaFailureDetected(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->remove_PartialMediaFailureDetected(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::SetPlaybackSource(Windows::Media::Playback::IMediaPlaybackSource const& source) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->SetPlaybackSource(get_abi(source)));
}

template <typename D> Windows::Media::Casting::CastingSource consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::GetAsCastingSource() const
{
    Windows::Media::Casting::CastingSource result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->GetAsCastingSource(put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PosterSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_PosterSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::SourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_SourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsMutedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_IsMutedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsAudioOnlyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_IsAudioOnlyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AutoPlayProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AutoPlayProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::VolumeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_VolumeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::BalanceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_BalanceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalVideoHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_NaturalVideoHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalVideoWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_NaturalVideoWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalDurationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_NaturalDurationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PositionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_PositionProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DownloadProgressProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_DownloadProgressProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::BufferingProgressProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_BufferingProgressProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DownloadProgressOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_DownloadProgressOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CurrentStateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_CurrentStateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CanSeekProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_CanSeekProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CanPauseProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_CanPauseProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioStreamCountProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AudioStreamCountProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioStreamIndexProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AudioStreamIndexProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PlaybackRateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_PlaybackRateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsLoopingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_IsLoopingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PlayToSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_PlayToSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DefaultPlaybackRateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_DefaultPlaybackRateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AspectRatioWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AspectRatioWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AspectRatioHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AspectRatioHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::RealTimePlaybackProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_RealTimePlaybackProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioCategoryProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AudioCategoryProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioDeviceTypeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_AudioDeviceTypeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::ProtectionManagerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_ProtectionManagerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::Stereo3DVideoPackingModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_Stereo3DVideoPackingModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::Stereo3DVideoRenderModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_Stereo3DVideoRenderModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsStereo3DVideoProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_IsStereo3DVideoProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::ActualStereo3DVideoPackingModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics)->get_ActualStereo3DVideoPackingModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::AreTransportControlsEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics2)->get_AreTransportControlsEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::StretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics2)->get_StretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::IsFullWindowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics2)->get_IsFullWindowProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::PlayToPreferredSourceUriProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElementStatics2)->get_PlayToPreferredSourceUriProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Media::Playback::IMediaPlaybackSource consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Source() const
{
    Windows::Media::Playback::IMediaPlaybackSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_Source(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Source(Windows::Media::Playback::IMediaPlaybackSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_Source(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::MediaTransportControls consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::TransportControls() const
{
    Windows::UI::Xaml::Controls::MediaTransportControls value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_TransportControls(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::TransportControls(Windows::UI::Xaml::Controls::MediaTransportControls const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_TransportControls(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AreTransportControlsEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_AreTransportControlsEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AreTransportControlsEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_AreTransportControlsEnabled(value));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::PosterSource() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_PosterSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::PosterSource(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_PosterSource(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Stretch consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Stretch() const
{
    Windows::UI::Xaml::Media::Stretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_Stretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_Stretch(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AutoPlay() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_AutoPlay(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AutoPlay(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_AutoPlay(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::IsFullWindow() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_IsFullWindow(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::IsFullWindow(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->put_IsFullWindow(value));
}

template <typename D> Windows::Media::Playback::MediaPlayer consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::MediaPlayer() const
{
    Windows::Media::Playback::MediaPlayer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->get_MediaPlayer(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::SetMediaPlayer(Windows::Media::Playback::MediaPlayer const& mediaPlayer) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElement)->SetMediaPlayer(get_abi(mediaPlayer)));
}

template <typename D> Windows::UI::Xaml::Controls::MediaPlayerElement consume_Windows_UI_Xaml_Controls_IMediaPlayerElementFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MediaPlayerElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::SourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_SourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::AreTransportControlsEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_AreTransportControlsEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::PosterSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_PosterSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::StretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_StretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::AutoPlayProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_AutoPlayProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::IsFullWindowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_IsFullWindowProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::MediaPlayerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementStatics)->get_MediaPlayerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Media::Playback::MediaPlayer consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::MediaPlayer() const
{
    Windows::Media::Playback::MediaPlayer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->get_MediaPlayer(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::MediaPlayer(Windows::Media::Playback::MediaPlayer const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->put_MediaPlayer(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Stretch consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::Stretch() const
{
    Windows::UI::Xaml::Media::Stretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->get_Stretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->put_Stretch(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::IsFullWindow() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->get_IsFullWindow(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::IsFullWindow(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenter)->put_IsFullWindow(value));
}

template <typename D> Windows::UI::Xaml::Controls::MediaPlayerPresenter consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MediaPlayerPresenter value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::MediaPlayerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics)->get_MediaPlayerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::StretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics)->get_StretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::IsFullWindowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics)->get_IsFullWindowProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFullWindowButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFullWindowButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFullWindowEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFullWindowEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsZoomButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsZoomButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsZoomEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsZoomEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFastForwardButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFastForwardButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFastForwardEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFastForwardEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFastRewindButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFastRewindButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsFastRewindEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsFastRewindEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsStopButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsStopButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsStopEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsStopEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsVolumeButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsVolumeButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsVolumeEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsVolumeEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsPlaybackRateButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsPlaybackRateButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsPlaybackRateEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsPlaybackRateEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekBarVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsSeekBarVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekBarVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsSeekBarVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsSeekEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsSeekEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsCompact() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->get_IsCompact(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsCompact(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls)->put_IsCompact(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsSkipForwardButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsSkipForwardButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsSkipForwardEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsSkipForwardEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsSkipBackwardButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsSkipBackwardButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsSkipBackwardEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsSkipBackwardEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsNextTrackButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsNextTrackButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsNextTrackButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsNextTrackButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsPreviousTrackButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_IsPreviousTrackButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsPreviousTrackButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_IsPreviousTrackButtonVisible(value));
}

template <typename D> Windows::UI::Xaml::Media::FastPlayFallbackBehaviour consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::FastPlayFallbackBehaviour() const
{
    Windows::UI::Xaml::Media::FastPlayFallbackBehaviour value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->get_FastPlayFallbackBehaviour(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::FastPlayFallbackBehaviour(Windows::UI::Xaml::Media::FastPlayFallbackBehaviour const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->put_FastPlayFallbackBehaviour(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->add_ThumbnailRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->remove_ThumbnailRequested(get_abi(token)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::ShowAndHideAutomatically() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->get_ShowAndHideAutomatically(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::ShowAndHideAutomatically(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->put_ShowAndHideAutomatically(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->get_IsRepeatEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->put_IsRepeatEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->get_IsRepeatButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->put_IsRepeatButtonVisible(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::Show() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->Show());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::Hide() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls3)->Hide());
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls4)->get_IsCompactOverlayButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls4)->put_IsCompactOverlayButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls4)->get_IsCompactOverlayEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls4)->put_IsCompactOverlayEnabled(value));
}

template <typename D> Windows::UI::Xaml::Controls::MediaTransportControls consume_Windows_UI_Xaml_Controls_IMediaTransportControlsFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MediaTransportControls value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::DropoutOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics)->get_DropoutOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IReference<int32_t> consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::GetDropoutOrder(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IReference<int32_t> result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics)->GetDropoutOrder(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::SetDropoutOrder(Windows::UI::Xaml::UIElement const& element, optional<int32_t> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics)->SetDropoutOrder(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFullWindowButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFullWindowButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFullWindowEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFullWindowEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsZoomButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsZoomButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsZoomEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsZoomEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastForwardButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFastForwardButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastForwardEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFastForwardEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastRewindButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFastRewindButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastRewindEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsFastRewindEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsStopButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsStopButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsStopEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsStopEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsVolumeButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsVolumeButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsVolumeEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsVolumeEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsPlaybackRateButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsPlaybackRateButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsPlaybackRateEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsPlaybackRateEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsSeekBarVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsSeekBarVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsSeekEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsSeekEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsCompactProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics)->get_IsCompactProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipForwardButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsSkipForwardButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipForwardEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsSkipForwardEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipBackwardButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsSkipBackwardButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipBackwardEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsSkipBackwardEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsNextTrackButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsNextTrackButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsPreviousTrackButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_IsPreviousTrackButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::FastPlayFallbackBehaviourProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2)->get_FastPlayFallbackBehaviourProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::ShowAndHideAutomaticallyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3)->get_ShowAndHideAutomaticallyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::IsRepeatEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3)->get_IsRepeatEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::IsRepeatButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3)->get_IsRepeatButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics4<D>::IsCompactOverlayButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4)->get_IsCompactOverlayButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics4<D>::IsCompactOverlayEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4)->get_IsCompactOverlayEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuBarItem> consume_Windows_UI_Xaml_Controls_IMenuBar<D>::Items() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuBarItem> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBar)->get_Items(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::MenuBar consume_Windows_UI_Xaml_Controls_IMenuBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MenuBar value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Title() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarItem)->get_Title(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Title(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarItem)->put_Title(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase> consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Items() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarItem)->get_Items(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::MenuBarItem consume_Windows_UI_Xaml_Controls_IMenuBarItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MenuBarItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::MenuBarItemFlyout consume_Windows_UI_Xaml_Controls_IMenuBarItemFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MenuBarItemFlyout value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuBarItemStatics<D>::TitleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarItemStatics)->get_TitleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuBarItemStatics<D>::ItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarItemStatics)->get_ItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuBarStatics<D>::ItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuBarStatics)->get_ItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase> consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::Items() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyout)->get_Items(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::MenuFlyoutPresenterStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyout)->get_MenuFlyoutPresenterStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::MenuFlyoutPresenterStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyout)->put_MenuFlyoutPresenterStyle(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyout2<D>::ShowAt(Windows::UI::Xaml::UIElement const& targetElement, Windows::Foundation::Point const& point) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyout2)->ShowAt(get_abi(targetElement), get_abi(point)));
}

template <typename D> Windows::UI::Xaml::Controls::MenuFlyout consume_Windows_UI_Xaml_Controls_IMenuFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MenuFlyout value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Text() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->get_Text(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Text(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->put_Text(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Input::ICommand consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Command() const
{
    Windows::UI::Xaml::Input::ICommand value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->get_Command(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Command(Windows::UI::Xaml::Input::ICommand const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->put_Command(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::CommandParameter() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->get_CommandParameter(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::CommandParameter(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->put_CommandParameter(get_abi(value)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->add_Click(get_abi(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> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->remove_Click(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::IconElement consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem2<D>::Icon() const
{
    Windows::UI::Xaml::Controls::IconElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem2)->get_Icon(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem2<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem2)->put_Icon(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::KeyboardAcceleratorTextOverride() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem3)->get_KeyboardAcceleratorTextOverride(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem3)->put_KeyboardAcceleratorTextOverride(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem3)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::MenuFlyoutItem consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MenuFlyoutItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::TextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics)->get_TextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::CommandProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics)->get_CommandProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::CommandParameterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics)->get_CommandParameterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics2<D>::IconProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2)->get_IconProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics3<D>::KeyboardAcceleratorTextOverrideProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3)->get_KeyboardAcceleratorTextOverrideProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenter2<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::MenuFlyoutPresenter consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MenuFlyoutPresenter value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::MenuFlyoutSeparator consume_Windows_UI_Xaml_Controls_IMenuFlyoutSeparatorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::MenuFlyoutSeparator value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuFlyoutStatics<D>::MenuFlyoutPresenterStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutStatics)->get_MenuFlyoutPresenterStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase> consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Items() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem)->get_Items(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Text() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem)->get_Text(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Text(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem)->put_Text(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::IconElement consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem2<D>::Icon() const
{
    Windows::UI::Xaml::Controls::IconElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2)->get_Icon(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem2<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2)->put_Icon(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItemStatics<D>::TextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics)->get_TextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItemStatics2<D>::IconProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2)->get_IconProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigate<D>::Navigate(Windows::UI::Xaml::Interop::TypeName const& sourcePageType) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigate)->Navigate(get_abi(sourcePageType), &result));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneOpen() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsPaneOpen(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneOpen(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_IsPaneOpen(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactModeThresholdWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_CompactModeThresholdWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactModeThresholdWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_CompactModeThresholdWidth(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_INavigationView<D>::ExpandedModeThresholdWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_ExpandedModeThresholdWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::ExpandedModeThresholdWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_ExpandedModeThresholdWidth(value));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneFooter() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_PaneFooter(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneFooter(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_PaneFooter(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_INavigationView<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_INavigationView<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewDisplayMode consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayMode() const
{
    Windows::UI::Xaml::Controls::NavigationViewDisplayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_DisplayMode(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsSettingsVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsSettingsVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsSettingsVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_IsSettingsVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneToggleButtonVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsPaneToggleButtonVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneToggleButtonVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_IsPaneToggleButtonVisible(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationView<D>::AlwaysShowHeader() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_AlwaysShowHeader(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::AlwaysShowHeader(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_AlwaysShowHeader(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactPaneLength() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_CompactPaneLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactPaneLength(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_CompactPaneLength(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_INavigationView<D>::OpenPaneLength() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_OpenPaneLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::OpenPaneLength(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_OpenPaneLength(value));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneToggleButtonStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_PaneToggleButtonStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneToggleButtonStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_PaneToggleButtonStyle(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectedItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_SelectedItem(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectedItem(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_SelectedItem(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItems() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItems(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemsSource() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemsSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemsSource(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemsSource(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_INavigationView<D>::SettingsItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_SettingsItem(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::AutoSuggestBox consume_Windows_UI_Xaml_Controls_INavigationView<D>::AutoSuggestBox() const
{
    Windows::UI::Xaml::Controls::AutoSuggestBox value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_AutoSuggestBox(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::AutoSuggestBox(Windows::UI::Xaml::Controls::AutoSuggestBox const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_AutoSuggestBox(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::DataTemplateSelector consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplateSelector() const
{
    Windows::UI::Xaml::Controls::DataTemplateSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemTemplateSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemTemplateSelector(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemContainerStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemContainerStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::StyleSelector consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyleSelector() const
{
    Windows::UI::Xaml::Controls::StyleSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_MenuItemContainerStyleSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyleSelector(Windows::UI::Xaml::Controls::StyleSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->put_MenuItemContainerStyleSelector(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->MenuItemFromContainer(get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_INavigationView<D>::ContainerFromMenuItem(Windows::Foundation::IInspectable const& item) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->ContainerFromMenuItem(get_abi(item), put_abi(result)));
    return result;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_SelectionChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_ItemInvoked(get_abi(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> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->remove_ItemInvoked(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_DisplayModeChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->remove_DisplayModeChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackButtonVisible() const
{
    Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->get_IsBackButtonVisible(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackButtonVisible(Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->put_IsBackButtonVisible(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->get_IsBackEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->put_IsBackEnabled(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneTitle() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->get_PaneTitle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneTitle(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->put_PaneTitle(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_BackRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_BackRequested(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneClosed(get_abi(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> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneClosed(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneClosing(get_abi(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> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneClosing(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneOpened(get_abi(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> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneOpened(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneOpening(get_abi(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> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneOpening(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneDisplayMode() const
{
    Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_PaneDisplayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneDisplayMode(Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_PaneDisplayMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneHeader() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_PaneHeader(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneHeader(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_PaneHeader(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneCustomContent() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_PaneCustomContent(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneCustomContent(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_PaneCustomContent(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ContentOverlay() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_ContentOverlay(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ContentOverlay(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_ContentOverlay(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationView3<D>::IsPaneVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_IsPaneVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView3<D>::IsPaneVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_IsPaneVisible(value));
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus consume_Windows_UI_Xaml_Controls_INavigationView3<D>::SelectionFollowsFocus() const
{
    Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_SelectionFollowsFocus(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView3<D>::SelectionFollowsFocus(Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_SelectionFollowsFocus(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewTemplateSettings consume_Windows_UI_Xaml_Controls_INavigationView3<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::NavigationViewTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ShoulderNavigationEnabled() const
{
    Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_ShoulderNavigationEnabled(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ShoulderNavigationEnabled(Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_ShoulderNavigationEnabled(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode consume_Windows_UI_Xaml_Controls_INavigationView3<D>::OverflowLabelMode() const
{
    Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->get_OverflowLabelMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView3<D>::OverflowLabelMode(Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView3)->put_OverflowLabelMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewDisplayMode consume_Windows_UI_Xaml_Controls_INavigationViewDisplayModeChangedEventArgs<D>::DisplayMode() const
{
    Windows::UI::Xaml::Controls::NavigationViewDisplayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs)->get_DisplayMode(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationView consume_Windows_UI_Xaml_Controls_INavigationViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::NavigationView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::IconElement consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::Icon() const
{
    Windows::UI::Xaml::Controls::IconElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem)->get_Icon(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::Icon(Windows::UI::Xaml::Controls::IconElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem)->put_Icon(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::CompactPaneLength() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem)->get_CompactPaneLength(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationViewItem2<D>::SelectsOnInvoked() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem2)->get_SelectsOnInvoked(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationViewItem2<D>::SelectsOnInvoked(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItem2)->put_SelectsOnInvoked(value));
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewItem consume_Windows_UI_Xaml_Controls_INavigationViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::NavigationViewItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewItemHeader consume_Windows_UI_Xaml_Controls_INavigationViewItemHeaderFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::NavigationViewItemHeader value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs<D>::InvokedItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs)->get_InvokedItem(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs<D>::IsSettingsInvoked() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs)->get_IsSettingsInvoked(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewItemBase consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs2<D>::InvokedItemContainer() const
{
    Windows::UI::Xaml::Controls::NavigationViewItemBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2)->get_InvokedItemContainer(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs2<D>::RecommendedNavigationTransitionInfo() const
{
    Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2)->get_RecommendedNavigationTransitionInfo(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewItemSeparator consume_Windows_UI_Xaml_Controls_INavigationViewItemSeparatorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::NavigationViewItemSeparator value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics<D>::IconProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemStatics)->get_IconProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics<D>::CompactPaneLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemStatics)->get_CompactPaneLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics2<D>::SelectsOnInvokedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemStatics2)->get_SelectsOnInvokedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewList consume_Windows_UI_Xaml_Controls_INavigationViewListFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::NavigationViewList value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewListFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationViewPaneClosingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationViewPaneClosingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs<D>::SelectedItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs)->get_SelectedItem(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs<D>::IsSettingsSelected() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs)->get_IsSettingsSelected(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewItemBase consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs2<D>::SelectedItemContainer() const
{
    Windows::UI::Xaml::Controls::NavigationViewItemBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2)->get_SelectedItemContainer(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs2<D>::RecommendedNavigationTransitionInfo() const
{
    Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2)->get_RecommendedNavigationTransitionInfo(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsPaneOpenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_IsPaneOpenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::CompactModeThresholdWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_CompactModeThresholdWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::ExpandedModeThresholdWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_ExpandedModeThresholdWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::PaneFooterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_PaneFooterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::DisplayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_DisplayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsSettingsVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_IsSettingsVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsPaneToggleButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_IsPaneToggleButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::AlwaysShowHeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_AlwaysShowHeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::CompactPaneLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_CompactPaneLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::OpenPaneLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_OpenPaneLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::PaneToggleButtonStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_PaneToggleButtonStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemsSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemsSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::SelectedItemProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_SelectedItemProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::SettingsItemProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_SettingsItemProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::AutoSuggestBoxProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_AutoSuggestBoxProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemTemplateSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemTemplateSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemContainerStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemContainerStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemContainerStyleSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics)->get_MenuItemContainerStyleSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::IsBackButtonVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics2)->get_IsBackButtonVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::IsBackEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics2)->get_IsBackEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::PaneTitleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics2)->get_PaneTitleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneDisplayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_PaneDisplayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneHeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_PaneHeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneCustomContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_PaneCustomContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::ContentOverlayProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_ContentOverlayProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::IsPaneVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_IsPaneVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::SelectionFollowsFocusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_SelectionFollowsFocusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::TemplateSettingsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_TemplateSettingsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::ShoulderNavigationEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_ShoulderNavigationEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::OverflowLabelModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewStatics3)->get_OverflowLabelModeProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::TopPadding() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_TopPadding(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::OverflowButtonVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_OverflowButtonVisibility(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::PaneToggleButtonVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_PaneToggleButtonVisibility(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::BackButtonVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_BackButtonVisibility(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::TopPaneVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_TopPaneVisibility(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::LeftPaneVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_LeftPaneVisibility(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::SingleSelectionFollowsFocus() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettings)->get_SingleSelectionFollowsFocus(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewTemplateSettings consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::NavigationViewTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::TopPaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_TopPaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::OverflowButtonVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_OverflowButtonVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::PaneToggleButtonVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_PaneToggleButtonVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::BackButtonVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_BackButtonVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::TopPaneVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_TopPaneVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::LeftPaneVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_LeftPaneVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::SingleSelectionFollowsFocusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics)->get_SingleSelectionFollowsFocusProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_INotifyEventArgs<D>::Value() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INotifyEventArgs)->get_Value(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_INotifyEventArgs2<D>::CallingUri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INotifyEventArgs2)->get_CallingUri(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Frame consume_Windows_UI_Xaml_Controls_IPage<D>::Frame() const
{
    Windows::UI::Xaml::Controls::Frame value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPage)->get_Frame(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Navigation::NavigationCacheMode consume_Windows_UI_Xaml_Controls_IPage<D>::NavigationCacheMode() const
{
    Windows::UI::Xaml::Navigation::NavigationCacheMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPage)->get_NavigationCacheMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPage<D>::NavigationCacheMode(Windows::UI::Xaml::Navigation::NavigationCacheMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPage)->put_NavigationCacheMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::AppBar consume_Windows_UI_Xaml_Controls_IPage<D>::TopAppBar() const
{
    Windows::UI::Xaml::Controls::AppBar value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPage)->get_TopAppBar(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPage<D>::TopAppBar(Windows::UI::Xaml::Controls::AppBar const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPage)->put_TopAppBar(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::AppBar consume_Windows_UI_Xaml_Controls_IPage<D>::BottomAppBar() const
{
    Windows::UI::Xaml::Controls::AppBar value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPage)->get_BottomAppBar(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPage<D>::BottomAppBar(Windows::UI::Xaml::Controls::AppBar const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPage)->put_BottomAppBar(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Page consume_Windows_UI_Xaml_Controls_IPageFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Page value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPageFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPageOverrides)->OnNavigatedFrom(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPageOverrides)->OnNavigatedTo(get_abi(e)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatingFrom(Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPageOverrides)->OnNavigatingFrom(get_abi(e)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPageStatics<D>::FrameProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPageStatics)->get_FrameProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPageStatics<D>::TopAppBarProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPageStatics)->get_TopAppBarProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPageStatics<D>::BottomAppBarProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPageStatics)->get_BottomAppBarProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::UIElementCollection consume_Windows_UI_Xaml_Controls_IPanel<D>::Children() const
{
    Windows::UI::Xaml::Controls::UIElementCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanel)->get_Children(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IPanel<D>::Background() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanel)->get_Background(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPanel<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanel)->put_Background(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPanel<D>::IsItemsHost() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanel)->get_IsItemsHost(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_IPanel<D>::ChildrenTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanel)->get_ChildrenTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPanel<D>::ChildrenTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanel)->put_ChildrenTransitions(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::BrushTransition consume_Windows_UI_Xaml_Controls_IPanel2<D>::BackgroundTransition() const
{
    Windows::UI::Xaml::BrushTransition value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanel2)->get_BackgroundTransition(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPanel2<D>::BackgroundTransition(Windows::UI::Xaml::BrushTransition const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanel2)->put_BackgroundTransition(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Panel consume_Windows_UI_Xaml_Controls_IPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Panel value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanelFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::BackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanelStatics)->get_BackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::IsItemsHostProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanelStatics)->get_IsItemsHostProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::ChildrenTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanelStatics)->get_ChildrenTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Child() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_Child(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Child(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_Child(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalShift() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_HorizontalShift(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalShift(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_HorizontalShift(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceEndOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_HorizontalSourceEndOffset(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceEndOffset(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_HorizontalSourceEndOffset(value));
}

template <typename D> Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceOffsetKind() const
{
    Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_HorizontalSourceOffsetKind(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_HorizontalSourceOffsetKind(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceStartOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_HorizontalSourceStartOffset(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceStartOffset(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_HorizontalSourceStartOffset(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsHorizontalShiftClamped() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_IsHorizontalShiftClamped(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsHorizontalShiftClamped(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_IsHorizontalShiftClamped(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsVerticalShiftClamped() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_IsVerticalShiftClamped(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsVerticalShiftClamped(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_IsVerticalShiftClamped(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxHorizontalShiftRatio() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_MaxHorizontalShiftRatio(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxHorizontalShiftRatio(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_MaxHorizontalShiftRatio(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxVerticalShiftRatio() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_MaxVerticalShiftRatio(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxVerticalShiftRatio(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_MaxVerticalShiftRatio(value));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Source() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_Source(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Source(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_Source(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalShift() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_VerticalShift(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalShift(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_VerticalShift(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceEndOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_VerticalSourceEndOffset(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceEndOffset(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_VerticalSourceEndOffset(value));
}

template <typename D> Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceOffsetKind() const
{
    Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_VerticalSourceOffsetKind(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_VerticalSourceOffsetKind(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceStartOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->get_VerticalSourceStartOffset(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceStartOffset(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->put_VerticalSourceStartOffset(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::RefreshAutomaticHorizontalOffsets() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->RefreshAutomaticHorizontalOffsets());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IParallaxView<D>::RefreshAutomaticVerticalOffsets() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxView)->RefreshAutomaticVerticalOffsets());
}

template <typename D> Windows::UI::Xaml::Controls::ParallaxView consume_Windows_UI_Xaml_Controls_IParallaxViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ParallaxView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::ChildProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_ChildProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceEndOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_HorizontalSourceEndOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceOffsetKindProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_HorizontalSourceOffsetKindProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceStartOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_HorizontalSourceStartOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::MaxHorizontalShiftRatioProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_MaxHorizontalShiftRatioProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalShiftProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_HorizontalShiftProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::IsHorizontalShiftClampedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_IsHorizontalShiftClampedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::IsVerticalShiftClampedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_IsVerticalShiftClampedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::SourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_SourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceEndOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_VerticalSourceEndOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceOffsetKindProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_VerticalSourceOffsetKindProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceStartOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_VerticalSourceStartOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::MaxVerticalShiftRatioProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_MaxVerticalShiftRatioProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalShiftProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewStatics)->get_VerticalShiftProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::Password() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->get_Password(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::Password(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->put_Password(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChar() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->get_PasswordChar(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChar(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->put_PasswordChar(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::IsPasswordRevealButtonEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->get_IsPasswordRevealButtonEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::IsPasswordRevealButtonEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->put_IsPasswordRevealButtonEnabled(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::MaxLength() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->get_MaxLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::MaxLength(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->put_MaxLength(value));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->add_PasswordChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->remove_PasswordChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->add_ContextMenuOpening(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->remove_ContextMenuOpening(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::SelectAll() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->SelectAll());
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PlaceholderText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_PlaceholderText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PlaceholderText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_PlaceholderText(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::SelectionHighlightColor() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_SelectionHighlightColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_SelectionHighlightColor(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->add_Paste(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->remove_Paste(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::PasswordRevealMode consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::PasswordRevealMode() const
{
    Windows::UI::Xaml::Controls::PasswordRevealMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->get_PasswordRevealMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::PasswordRevealMode(Windows::UI::Xaml::Controls::PasswordRevealMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->put_PasswordRevealMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextReadingOrder consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::TextReadingOrder() const
{
    Windows::UI::Xaml::TextReadingOrder value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->get_TextReadingOrder(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->put_TextReadingOrder(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Input::InputScope consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::InputScope() const
{
    Windows::UI::Xaml::Input::InputScope value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->get_InputScope(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::InputScope(Windows::UI::Xaml::Input::InputScope const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox3)->put_InputScope(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IPasswordBox4)->add_PasswordChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox4)->remove_PasswordChanging(get_abi(token)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::CanPasteClipboardContent() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->get_CanPasteClipboardContent(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::SelectionFlyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->get_SelectionFlyout(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->put_SelectionFlyout(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::Description() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->get_Description(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::Description(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->put_Description(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::PasteFromClipboard() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox5)->PasteFromClipboard());
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPasswordBoxPasswordChangingEventArgs<D>::IsContentChanging() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs)->get_IsContentChanging(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::PasswordProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics)->get_PasswordProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::PasswordCharProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics)->get_PasswordCharProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::IsPasswordRevealButtonEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics)->get_IsPasswordRevealButtonEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::MaxLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics)->get_MaxLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::PlaceholderTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_PlaceholderTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::SelectionHighlightColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_SelectionHighlightColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics2)->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::PasswordRevealModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics3)->get_PasswordRevealModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::TextReadingOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics3)->get_TextReadingOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::InputScopeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics3)->get_InputScopeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::CanPasteClipboardContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics5)->get_CanPasteClipboardContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::SelectionFlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics5)->get_SelectionFlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::DescriptionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBoxStatics5)->get_DescriptionProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Geometry consume_Windows_UI_Xaml_Controls_IPathIcon<D>::Data() const
{
    Windows::UI::Xaml::Media::Geometry value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIcon)->get_Data(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPathIcon<D>::Data(Windows::UI::Xaml::Media::Geometry const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIcon)->put_Data(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::PathIcon consume_Windows_UI_Xaml_Controls_IPathIconFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::PathIcon value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIconFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Geometry consume_Windows_UI_Xaml_Controls_IPathIconSource<D>::Data() const
{
    Windows::UI::Xaml::Media::Geometry value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIconSource)->get_Data(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPathIconSource<D>::Data(Windows::UI::Xaml::Media::Geometry const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIconSource)->put_Data(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::PathIconSource consume_Windows_UI_Xaml_Controls_IPathIconSourceFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::PathIconSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIconSourceFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPathIconSourceStatics<D>::DataProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIconSourceStatics)->get_DataProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPathIconStatics<D>::DataProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIconStatics)->get_DataProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeNumber() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_BadgeNumber(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeNumber(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_BadgeNumber(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeGlyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_BadgeGlyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeGlyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_BadgeGlyph(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeImageSource() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_BadgeImageSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeImageSource(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_BadgeImageSource(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_BadgeText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_BadgeText(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::IsGroup() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_IsGroup(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::IsGroup(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_IsGroup(value));
}

template <typename D> Windows::ApplicationModel::Contacts::Contact consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Contact() const
{
    Windows::ApplicationModel::Contacts::Contact value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_Contact(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Contact(Windows::ApplicationModel::Contacts::Contact const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_Contact(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::DisplayName() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_DisplayName(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::DisplayName(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_DisplayName(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Initials() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_Initials(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Initials(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_Initials(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::PreferSmallImage() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_PreferSmallImage(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::PreferSmallImage(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_PreferSmallImage(value));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::ProfilePicture() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->get_ProfilePicture(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::ProfilePicture(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPicture)->put_ProfilePicture(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::PersonPicture consume_Windows_UI_Xaml_Controls_IPersonPictureFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::PersonPicture value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeNumberProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_BadgeNumberProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeGlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_BadgeGlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeImageSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_BadgeImageSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_BadgeTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::IsGroupProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_IsGroupProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::ContactProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_ContactProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::DisplayNameProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_DisplayNameProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::InitialsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_InitialsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::PreferSmallImageProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_PreferSmallImageProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::ProfilePictureProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureStatics)->get_ProfilePictureProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Content() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->get_Content(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Content(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->put_Content(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ConfirmationButtonsVisible() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->get_ConfirmationButtonsVisible(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ConfirmationButtonsVisible(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->put_ConfirmationButtonsVisible(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->add_Confirmed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->remove_Confirmed(get_abi(token)));
}

template <typename D> Windows::Foundation::IAsyncOperation<bool> consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ShowAtAsync(Windows::UI::Xaml::FrameworkElement const& target) const
{
    Windows::Foundation::IAsyncOperation<bool> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->ShowAtAsync(get_abi(target), put_abi(operation)));
    return operation;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPickerFlyoutStatics<D>::ContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyoutStatics)->get_ContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPickerFlyoutStatics<D>::ConfirmationButtonsVisibleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyoutStatics)->get_ConfirmationButtonsVisibleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IPivot<D>::Title() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_Title(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::Title(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_Title(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IPivot<D>::TitleTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_TitleTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::TitleTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_TitleTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IPivot<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_SelectedIndex(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedIndex(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_SelectedIndex(value));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_SelectedItem(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedItem(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_SelectedItem(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPivot<D>::IsLocked() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->get_IsLocked(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::IsLocked(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->put_IsLocked(value));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(Windows::UI::Xaml::Controls::SelectionChangedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_SelectionChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemLoading(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemLoading(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemLoaded(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemLoaded(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemUnloading(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemUnloading(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemUnloaded(get_abi(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> void consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemUnloaded(get_abi(token)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeader() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot2)->get_LeftHeader(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeader(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot2)->put_LeftHeader(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot2)->get_LeftHeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot2)->put_LeftHeaderTemplate(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeader() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot2)->get_RightHeader(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeader(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot2)->put_RightHeader(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot2)->get_RightHeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot2)->put_RightHeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement consume_Windows_UI_Xaml_Controls_IPivot3<D>::HeaderFocusVisualPlacement() const
{
    Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot3)->get_HeaderFocusVisualPlacement(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot3<D>::HeaderFocusVisualPlacement(Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot3)->put_HeaderFocusVisualPlacement(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IPivot3<D>::IsHeaderItemsCarouselEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot3)->get_IsHeaderItemsCarouselEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot3<D>::IsHeaderItemsCarouselEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot3)->put_IsHeaderItemsCarouselEnabled(value));
}

template <typename D> Windows::UI::Xaml::Controls::Pivot consume_Windows_UI_Xaml_Controls_IPivotFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Pivot value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IPivotItem<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotItem)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivotItem<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotItem)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::PivotItem consume_Windows_UI_Xaml_Controls_IPivotItemEventArgs<D>::Item() const
{
    Windows::UI::Xaml::Controls::PivotItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotItemEventArgs)->get_Item(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivotItemEventArgs<D>::Item(Windows::UI::Xaml::Controls::PivotItem const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotItemEventArgs)->put_Item(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::PivotItem consume_Windows_UI_Xaml_Controls_IPivotItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::PivotItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotItemStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotItemStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::TitleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_TitleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::TitleTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_TitleTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SelectedIndexProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_SelectedIndexProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SelectedItemProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_SelectedItemProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::IsLockedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_IsLockedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SlideInAnimationGroupProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->get_SlideInAnimationGroupProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::GetSlideInAnimationGroup(Windows::UI::Xaml::FrameworkElement const& element) const
{
    Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->GetSlideInAnimationGroup(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->SetSlideInAnimationGroup(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::LeftHeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics2)->get_LeftHeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::LeftHeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics2)->get_LeftHeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::RightHeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics2)->get_RightHeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::RightHeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics2)->get_RightHeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics3<D>::HeaderFocusVisualPlacementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics3)->get_HeaderFocusVisualPlacementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IPivotStatics3<D>::IsHeaderItemsCarouselEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics3)->get_IsHeaderItemsCarouselEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IProgressBar<D>::IsIndeterminate() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->get_IsIndeterminate(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IProgressBar<D>::IsIndeterminate(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->put_IsIndeterminate(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowError() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->get_ShowError(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowError(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->put_ShowError(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowPaused() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->get_ShowPaused(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowPaused(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->put_ShowPaused(value));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings consume_Windows_UI_Xaml_Controls_IProgressBar<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBar)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ProgressBar consume_Windows_UI_Xaml_Controls_IProgressBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ProgressBar value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBarFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::IsIndeterminateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBarStatics)->get_IsIndeterminateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::ShowErrorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBarStatics)->get_ShowErrorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::ShowPausedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBarStatics)->get_ShowPausedProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IProgressRing<D>::IsActive() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressRing)->get_IsActive(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IProgressRing<D>::IsActive(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressRing)->put_IsActive(value));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings consume_Windows_UI_Xaml_Controls_IProgressRing<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressRing)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IProgressRingStatics<D>::IsActiveProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressRingStatics)->get_IsActiveProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRadioButton<D>::GroupName() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRadioButton)->get_GroupName(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRadioButton<D>::GroupName(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRadioButton)->put_GroupName(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::RadioButton consume_Windows_UI_Xaml_Controls_IRadioButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RadioButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRadioButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRadioButtonStatics<D>::GroupNameProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRadioButtonStatics)->get_GroupNameProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Caption() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_Caption(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Caption(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_Caption(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IRatingControl<D>::InitialSetValue() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_InitialSetValue(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::InitialSetValue(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_InitialSetValue(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsClearEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_IsClearEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsClearEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_IsClearEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsReadOnly() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_IsReadOnly(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsReadOnly(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_IsReadOnly(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IRatingControl<D>::MaxRating() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_MaxRating(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::MaxRating(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_MaxRating(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRatingControl<D>::PlaceholderValue() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_PlaceholderValue(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::PlaceholderValue(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_PlaceholderValue(value));
}

template <typename D> Windows::UI::Xaml::Controls::RatingItemInfo consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ItemInfo() const
{
    Windows::UI::Xaml::Controls::RatingItemInfo value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_ItemInfo(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ItemInfo(Windows::UI::Xaml::Controls::RatingItemInfo const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_ItemInfo(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Value() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->get_Value(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Value(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->put_Value(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->add_ValueChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->remove_ValueChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::RatingControl consume_Windows_UI_Xaml_Controls_IRatingControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RatingControl value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::CaptionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_CaptionProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::InitialSetValueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_InitialSetValueProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::IsClearEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_IsClearEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::IsReadOnlyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_IsReadOnlyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::MaxRatingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_MaxRatingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::PlaceholderValueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_PlaceholderValueProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::ItemInfoProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_ItemInfoProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::ValueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlStatics)->get_ValueProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::DisabledGlyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_DisabledGlyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::DisabledGlyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_DisabledGlyph(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::Glyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_Glyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::Glyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_Glyph(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverGlyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_PointerOverGlyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverGlyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_PointerOverGlyph(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverPlaceholderGlyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_PointerOverPlaceholderGlyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverPlaceholderGlyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_PointerOverPlaceholderGlyph(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PlaceholderGlyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_PlaceholderGlyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PlaceholderGlyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_PlaceholderGlyph(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::UnsetGlyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->get_UnsetGlyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::UnsetGlyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfo)->put_UnsetGlyph(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::RatingItemFontInfo consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RatingItemFontInfo value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::DisabledGlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_DisabledGlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::GlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_GlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PlaceholderGlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_PlaceholderGlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PointerOverGlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_PointerOverGlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PointerOverPlaceholderGlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_PointerOverPlaceholderGlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::UnsetGlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics)->get_UnsetGlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::DisabledImage() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_DisabledImage(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::DisabledImage(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_DisabledImage(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::Image() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_Image(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::Image(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_Image(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PlaceholderImage() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_PlaceholderImage(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PlaceholderImage(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_PlaceholderImage(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverImage() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_PointerOverImage(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverImage(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_PointerOverImage(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverPlaceholderImage() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_PointerOverPlaceholderImage(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverPlaceholderImage(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_PointerOverPlaceholderImage(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::UnsetImage() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->get_UnsetImage(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::UnsetImage(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfo)->put_UnsetImage(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::RatingItemImageInfo consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RatingItemImageInfo value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::DisabledImageProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_DisabledImageProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::ImageProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_ImageProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PlaceholderImageProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_PlaceholderImageProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PointerOverImageProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_PointerOverImageProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PointerOverPlaceholderImageProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_PointerOverPlaceholderImageProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::UnsetImageProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics)->get_UnsetImageProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::RatingItemInfo consume_Windows_UI_Xaml_Controls_IRatingItemInfoFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RatingItemInfo value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemInfoFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::RefreshVisualizer consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::Visualizer() const
{
    Windows::UI::Xaml::Controls::RefreshVisualizer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->get_Visualizer(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::Visualizer(Windows::UI::Xaml::Controls::RefreshVisualizer const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->put_Visualizer(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::RefreshPullDirection consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::PullDirection() const
{
    Windows::UI::Xaml::Controls::RefreshPullDirection value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->get_PullDirection(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::PullDirection(Windows::UI::Xaml::Controls::RefreshPullDirection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->put_PullDirection(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->add_RefreshRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->remove_RefreshRequested(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RequestRefresh() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->RequestRefresh());
}

template <typename D> Windows::UI::Xaml::Controls::RefreshContainer consume_Windows_UI_Xaml_Controls_IRefreshContainerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RefreshContainer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainerFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRefreshContainerStatics<D>::VisualizerProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainerStatics)->get_VisualizerProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRefreshContainerStatics<D>::PullDirectionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainerStatics)->get_PullDirectionProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRefreshInteractionRatioChangedEventArgs<D>::InteractionRatio() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs)->get_InteractionRatio(&value));
    return value;
}

template <typename D> Windows::Foundation::Deferral consume_Windows_UI_Xaml_Controls_IRefreshRequestedEventArgs<D>::GetDeferral() const
{
    Windows::Foundation::Deferral result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs)->GetDeferral(put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::RefreshVisualizerState consume_Windows_UI_Xaml_Controls_IRefreshStateChangedEventArgs<D>::OldState() const
{
    Windows::UI::Xaml::Controls::RefreshVisualizerState value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs)->get_OldState(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::RefreshVisualizerState consume_Windows_UI_Xaml_Controls_IRefreshStateChangedEventArgs<D>::NewState() const
{
    Windows::UI::Xaml::Controls::RefreshVisualizerState value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs)->get_NewState(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RequestRefresh() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->RequestRefresh());
}

template <typename D> Windows::UI::Xaml::Controls::RefreshVisualizerOrientation consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::RefreshVisualizerOrientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Orientation(Windows::UI::Xaml::Controls::RefreshVisualizerOrientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->put_Orientation(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Content() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->get_Content(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Content(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->put_Content(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::RefreshVisualizerState consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::State() const
{
    Windows::UI::Xaml::Controls::RefreshVisualizerState value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->get_State(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->add_RefreshRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->remove_RefreshRequested(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->add_RefreshStateChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->remove_RefreshStateChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::RefreshVisualizer consume_Windows_UI_Xaml_Controls_IRefreshVisualizerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RefreshVisualizer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::InfoProviderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerStatics)->get_InfoProviderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::ContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerStatics)->get_ContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::StateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerStatics)->get_StateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->get_BorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->put_BorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderThickness() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->get_BorderThickness(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->put_BorderThickness(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::CornerRadius consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::CornerRadius() const
{
    Windows::UI::Xaml::CornerRadius value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->get_CornerRadius(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->put_CornerRadius(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel)->put_Padding(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::BackgroundSizing consume_Windows_UI_Xaml_Controls_IRelativePanel2<D>::BackgroundSizing() const
{
    Windows::UI::Xaml::Controls::BackgroundSizing value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel2)->get_BackgroundSizing(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanel2<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanel2)->put_BackgroundSizing(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::RelativePanel consume_Windows_UI_Xaml_Controls_IRelativePanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RelativePanel value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::LeftOfProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_LeftOfProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetLeftOf(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetLeftOf(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetLeftOf(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetLeftOf(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AboveProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AboveProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAbove(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAbove(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAbove(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAbove(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::RightOfProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_RightOfProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetRightOf(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetRightOf(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetRightOf(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetRightOf(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BelowProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_BelowProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetBelow(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetBelow(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetBelow(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetBelow(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignHorizontalCenterWithProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignHorizontalCenterWithProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignHorizontalCenterWith(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignHorizontalCenterWith(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignHorizontalCenterWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignHorizontalCenterWith(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignVerticalCenterWithProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignVerticalCenterWithProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignVerticalCenterWith(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignVerticalCenterWith(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignVerticalCenterWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignVerticalCenterWith(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignLeftWithProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignLeftWithProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignLeftWith(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignLeftWith(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignLeftWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignLeftWith(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignTopWithProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignTopWithProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignTopWith(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignTopWith(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignTopWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignTopWith(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignRightWithProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignRightWithProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignRightWith(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignRightWith(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignRightWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignRightWith(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignBottomWithProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignBottomWithProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignBottomWith(Windows::UI::Xaml::UIElement const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignBottomWith(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignBottomWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignBottomWith(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignLeftWithPanelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignLeftWithPanelProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignLeftWithPanel(Windows::UI::Xaml::UIElement const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignLeftWithPanel(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignLeftWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignLeftWithPanel(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignTopWithPanelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignTopWithPanelProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignTopWithPanel(Windows::UI::Xaml::UIElement const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignTopWithPanel(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignTopWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignTopWithPanel(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignRightWithPanelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignRightWithPanelProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignRightWithPanel(Windows::UI::Xaml::UIElement const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignRightWithPanel(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignRightWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignRightWithPanel(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignBottomWithPanelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignBottomWithPanelProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignBottomWithPanel(Windows::UI::Xaml::UIElement const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignBottomWithPanel(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignBottomWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignBottomWithPanel(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignHorizontalCenterWithPanelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignHorizontalCenterWithPanelProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignHorizontalCenterWithPanel(Windows::UI::Xaml::UIElement const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignHorizontalCenterWithPanel(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignHorizontalCenterWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignHorizontalCenterWithPanel(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignVerticalCenterWithPanelProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_AlignVerticalCenterWithPanelProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignVerticalCenterWithPanel(Windows::UI::Xaml::UIElement const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignVerticalCenterWithPanel(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignVerticalCenterWithPanel(Windows::UI::Xaml::UIElement const& element, bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->SetAlignVerticalCenterWithPanel(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_BorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BorderThicknessProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_BorderThicknessProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::CornerRadiusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_CornerRadiusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRelativePanelStatics2<D>::BackgroundSizingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics2)->get_BackgroundSizingProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsReadOnly() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_IsReadOnly(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsReadOnly(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_IsReadOnly(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::AcceptsReturn() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_AcceptsReturn(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::AcceptsReturn(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_AcceptsReturn(value));
}

template <typename D> Windows::UI::Xaml::TextAlignment consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextAlignment() const
{
    Windows::UI::Xaml::TextAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_TextAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_TextAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextWrapping consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextWrapping() const
{
    Windows::UI::Xaml::TextWrapping value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_TextWrapping(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_TextWrapping(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsSpellCheckEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_IsSpellCheckEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsSpellCheckEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_IsSpellCheckEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsTextPredictionEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_IsTextPredictionEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsTextPredictionEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_IsTextPredictionEnabled(value));
}

template <typename D> Windows::UI::Text::ITextDocument consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::Document() const
{
    Windows::UI::Text::ITextDocument value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_Document(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Input::InputScope consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::InputScope() const
{
    Windows::UI::Xaml::Input::InputScope value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->get_InputScope(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::InputScope(Windows::UI::Xaml::Input::InputScope const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->put_InputScope(get_abi(value)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_TextChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->remove_TextChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_SelectionChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_ContextMenuOpening(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->remove_ContextMenuOpening(get_abi(token)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PlaceholderText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_PlaceholderText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PlaceholderText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_PlaceholderText(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::SelectionHighlightColor() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_SelectionHighlightColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_SelectionHighlightColor(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::IsColorFontEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->get_IsColorFontEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::IsColorFontEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->put_IsColorFontEnabled(value));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->add_Paste(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->remove_Paste(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionStarted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextCompositionStarted(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextCompositionChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionEnded(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextCompositionEnded(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::TextReadingOrder consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextReadingOrder() const
{
    Windows::UI::Xaml::TextReadingOrder value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->get_TextReadingOrder(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->put_TextReadingOrder(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::CandidateWindowAlignment consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::DesiredCandidateWindowAlignment() const
{
    Windows::UI::Xaml::Controls::CandidateWindowAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->get_DesiredCandidateWindowAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->put_DesiredCandidateWindowAlignment(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_CandidateWindowBoundsChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_CandidateWindowBoundsChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextChanging(get_abi(token)));
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>> consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::GetLinguisticAlternativesAsync() const
{
    Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox4)->GetLinguisticAlternativesAsync(put_abi(operation)));
    return operation;
}

template <typename D> Windows::UI::Xaml::Controls::RichEditClipboardFormat consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::ClipboardCopyFormat() const
{
    Windows::UI::Xaml::Controls::RichEditClipboardFormat value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox4)->get_ClipboardCopyFormat(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::ClipboardCopyFormat(Windows::UI::Xaml::Controls::RichEditClipboardFormat const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox4)->put_ClipboardCopyFormat(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::SelectionHighlightColorWhenNotFocused() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox5)->get_SelectionHighlightColorWhenNotFocused(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::SelectionHighlightColorWhenNotFocused(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox5)->put_SelectionHighlightColorWhenNotFocused(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::MaxLength() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox5)->get_MaxLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::MaxLength(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox5)->put_MaxLength(value));
}

template <typename D> Windows::UI::Xaml::TextAlignment consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::HorizontalTextAlignment() const
{
    Windows::UI::Xaml::TextAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->get_HorizontalTextAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->put_HorizontalTextAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::CharacterCasing consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CharacterCasing() const
{
    Windows::UI::Xaml::Controls::CharacterCasing value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->get_CharacterCasing(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->put_CharacterCasing(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::DisabledFormattingAccelerators consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::DisabledFormattingAccelerators() const
{
    Windows::UI::Xaml::Controls::DisabledFormattingAccelerators value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->get_DisabledFormattingAccelerators(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::DisabledFormattingAccelerators(Windows::UI::Xaml::Controls::DisabledFormattingAccelerators const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->put_DisabledFormattingAccelerators(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->add_CopyingToClipboard(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->remove_CopyingToClipboard(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->add_CuttingToClipboard(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->remove_CuttingToClipboard(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkForegroundColor() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_ContentLinkForegroundColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkForegroundColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_ContentLinkForegroundColor(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkBackgroundColor() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_ContentLinkBackgroundColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkBackgroundColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_ContentLinkBackgroundColor(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Documents::ContentLinkProviderCollection consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkProviders() const
{
    Windows::UI::Xaml::Documents::ContentLinkProviderCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_ContentLinkProviders(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkProviders(Windows::UI::Xaml::Documents::ContentLinkProviderCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_ContentLinkProviders(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::HandwritingView consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::HandwritingView() const
{
    Windows::UI::Xaml::Controls::HandwritingView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_HandwritingView(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::HandwritingView(Windows::UI::Xaml::Controls::HandwritingView const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_HandwritingView(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::IsHandwritingViewEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->get_IsHandwritingViewEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::IsHandwritingViewEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->put_IsHandwritingViewEnabled(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->add_ContentLinkChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->remove_ContentLinkChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->add_ContentLinkInvoked(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->remove_ContentLinkInvoked(get_abi(token)));
}

template <typename D> Windows::UI::Text::RichEditTextDocument consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::TextDocument() const
{
    Windows::UI::Text::RichEditTextDocument value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->get_TextDocument(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionFlyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->get_SelectionFlyout(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->put_SelectionFlyout(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::ProofingMenuFlyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->get_ProofingMenuFlyout(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::Description() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->get_Description(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::Description(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->put_Description(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->add_SelectionChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox8)->remove_SelectionChanging(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::RichEditBox consume_Windows_UI_Xaml_Controls_IRichEditBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::RichEditBox value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::SelectionStart() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs)->get_SelectionStart(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::SelectionLength() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs)->get_SelectionLength(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsReadOnlyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_IsReadOnlyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::AcceptsReturnProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_AcceptsReturnProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::TextAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_TextAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::TextWrappingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_TextWrappingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsSpellCheckEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_IsSpellCheckEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsTextPredictionEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_IsTextPredictionEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::InputScopeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics)->get_InputScopeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::PlaceholderTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_PlaceholderTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::SelectionHighlightColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_SelectionHighlightColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::IsColorFontEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics2)->get_IsColorFontEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics3<D>::DesiredCandidateWindowAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics3)->get_DesiredCandidateWindowAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics3<D>::TextReadingOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics3)->get_TextReadingOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics4<D>::ClipboardCopyFormatProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics4)->get_ClipboardCopyFormatProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics5<D>::SelectionHighlightColorWhenNotFocusedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics5)->get_SelectionHighlightColorWhenNotFocusedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics5<D>::MaxLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics5)->get_MaxLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::HorizontalTextAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics6)->get_HorizontalTextAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::CharacterCasingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics6)->get_CharacterCasingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::DisabledFormattingAcceleratorsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics6)->get_DisabledFormattingAcceleratorsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkForegroundColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_ContentLinkForegroundColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkBackgroundColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_ContentLinkBackgroundColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkProvidersProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_ContentLinkProvidersProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::HandwritingViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_HandwritingViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::IsHandwritingViewEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics7)->get_IsHandwritingViewEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::SelectionFlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics8)->get_SelectionFlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::ProofingMenuFlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics8)->get_ProofingMenuFlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::DescriptionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxStatics8)->get_DescriptionProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichEditBoxTextChangingEventArgs2<D>::IsContentChanging() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2)->get_IsContentChanging(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontSize(value));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontFamily(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontStyle(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStretch consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStretch() const
{
    Windows::UI::Text::FontStretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_FontStretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStretch(Windows::UI::Text::FontStretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_FontStretch(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Foreground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_Foreground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_Foreground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextWrapping consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextWrapping() const
{
    Windows::UI::Xaml::TextWrapping value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_TextWrapping(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_TextWrapping(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextTrimming consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextTrimming() const
{
    Windows::UI::Xaml::TextTrimming value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_TextTrimming(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextTrimming(Windows::UI::Xaml::TextTrimming const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_TextTrimming(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextAlignment consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextAlignment() const
{
    Windows::UI::Xaml::TextAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_TextAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_TextAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Documents::BlockCollection consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Blocks() const
{
    Windows::UI::Xaml::Documents::BlockCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_Blocks(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_Padding(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_LineHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_LineHeight(value));
}

template <typename D> Windows::UI::Xaml::LineStackingStrategy consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineStackingStrategy() const
{
    Windows::UI::Xaml::LineStackingStrategy value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_LineStackingStrategy(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_LineStackingStrategy(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::CharacterSpacing() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_CharacterSpacing(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::CharacterSpacing(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_CharacterSpacing(value));
}

template <typename D> Windows::UI::Xaml::Controls::RichTextBlockOverflow consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::OverflowContentTarget() const
{
    Windows::UI::Xaml::Controls::RichTextBlockOverflow value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_OverflowContentTarget(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::OverflowContentTarget(Windows::UI::Xaml::Controls::RichTextBlockOverflow const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_OverflowContentTarget(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::IsTextSelectionEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_IsTextSelectionEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::IsTextSelectionEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_IsTextSelectionEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::HasOverflowContent() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_HasOverflowContent(&value));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectedText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_SelectedText(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContentStart() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_ContentStart(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContentEnd() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_ContentEnd(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionStart() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_SelectionStart(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionEnd() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_SelectionEnd(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::BaselineOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_BaselineOffset(&value));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->add_SelectionChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->add_ContextMenuOpening(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->remove_ContextMenuOpening(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectAll() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->SelectAll());
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->Select(get_abi(start), get_abi(end)));
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::GetPositionFromPoint(Windows::Foundation::Point const& point) const
{
    Windows::UI::Xaml::Documents::TextPointer result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->GetPositionFromPoint(get_abi(point), put_abi(result)));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->Focus(get_abi(value), &result));
    return result;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextIndent() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->get_TextIndent(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextIndent(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->put_TextIndent(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::MaxLines() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_MaxLines(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::MaxLines(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_MaxLines(value));
}

template <typename D> Windows::UI::Xaml::TextLineBounds consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextLineBounds() const
{
    Windows::UI::Xaml::TextLineBounds value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_TextLineBounds(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextLineBounds(Windows::UI::Xaml::TextLineBounds const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_TextLineBounds(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::SelectionHighlightColor() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_SelectionHighlightColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_SelectionHighlightColor(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::OpticalMarginAlignment consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::OpticalMarginAlignment() const
{
    Windows::UI::Xaml::OpticalMarginAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_OpticalMarginAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_OpticalMarginAlignment(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::IsColorFontEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_IsColorFontEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::IsColorFontEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_IsColorFontEnabled(value));
}

template <typename D> Windows::UI::Xaml::TextReadingOrder consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextReadingOrder() const
{
    Windows::UI::Xaml::TextReadingOrder value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->get_TextReadingOrder(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock2)->put_TextReadingOrder(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlock3<D>::IsTextScaleFactorEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock3)->get_IsTextScaleFactorEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock3<D>::IsTextScaleFactorEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock3)->put_IsTextScaleFactorEnabled(value));
}

template <typename D> Windows::UI::Text::TextDecorations consume_Windows_UI_Xaml_Controls_IRichTextBlock4<D>::TextDecorations() const
{
    Windows::UI::Text::TextDecorations value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock4)->get_TextDecorations(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock4<D>::TextDecorations(Windows::UI::Text::TextDecorations const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock4)->put_TextDecorations(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmed() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->get_IsTextTrimmed(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::TextAlignment consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::HorizontalTextAlignment() const
{
    Windows::UI::Xaml::TextAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->get_HorizontalTextAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->put_HorizontalTextAlignment(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter> consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::TextHighlighters() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->get_TextHighlighters(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->add_IsTextTrimmedChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->remove_IsTextTrimmedChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::SelectionFlyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock6)->get_SelectionFlyout(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock6)->put_SelectionFlyout(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::CopySelectionToClipboard() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock6)->CopySelectionToClipboard());
}

template <typename D> Windows::UI::Xaml::Controls::RichTextBlockOverflow consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::OverflowContentTarget() const
{
    Windows::UI::Xaml::Controls::RichTextBlockOverflow value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_OverflowContentTarget(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::OverflowContentTarget(Windows::UI::Xaml::Controls::RichTextBlockOverflow const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->put_OverflowContentTarget(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->put_Padding(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::RichTextBlock consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentSource() const
{
    Windows::UI::Xaml::Controls::RichTextBlock value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_ContentSource(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::HasOverflowContent() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_HasOverflowContent(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentStart() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_ContentStart(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentEnd() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_ContentEnd(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::BaselineOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->get_BaselineOffset(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::GetPositionFromPoint(Windows::Foundation::Point const& point) const
{
    Windows::UI::Xaml::Documents::TextPointer result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->GetPositionFromPoint(get_abi(point), put_abi(result)));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->Focus(get_abi(value), &result));
    return result;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow2<D>::MaxLines() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow2)->get_MaxLines(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow2<D>::MaxLines(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow2)->put_MaxLines(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmed() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow3)->get_IsTextTrimmed(&value));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow3)->add_IsTextTrimmedChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow3)->remove_IsTextTrimmedChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::OverflowContentTargetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics)->get_OverflowContentTargetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::HasOverflowContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics)->get_HasOverflowContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics2<D>::MaxLinesProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2)->get_MaxLinesProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics3<D>::IsTextTrimmedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3)->get_IsTextTrimmedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontStretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_FontStretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::ForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_ForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextWrappingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_TextWrappingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextTrimmingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_TextTrimmingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_TextAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::LineHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_LineHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::LineStackingStrategyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_LineStackingStrategyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::CharacterSpacingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_CharacterSpacingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::OverflowContentTargetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_OverflowContentTargetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::IsTextSelectionEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_IsTextSelectionEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::HasOverflowContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_HasOverflowContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::SelectedTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_SelectedTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextIndentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics)->get_TextIndentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::MaxLinesProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_MaxLinesProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::TextLineBoundsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_TextLineBoundsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::SelectionHighlightColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_SelectionHighlightColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::OpticalMarginAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_OpticalMarginAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::IsColorFontEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_IsColorFontEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::TextReadingOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics2)->get_TextReadingOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics3<D>::IsTextScaleFactorEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics3)->get_IsTextScaleFactorEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics4<D>::TextDecorationsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics4)->get_TextDecorationsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics5<D>::IsTextTrimmedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics5)->get_IsTextTrimmedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics5<D>::HorizontalTextAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics5)->get_HorizontalTextAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics6<D>::SelectionFlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockStatics6)->get_SelectionFlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::GridLength consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::Height() const
{
    Windows::UI::Xaml::GridLength value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->get_Height(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::Height(Windows::UI::Xaml::GridLength const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->put_Height(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MaxHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->get_MaxHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MaxHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->put_MaxHeight(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MinHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->get_MinHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MinHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->put_MinHeight(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::ActualHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinition)->get_ActualHeight(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::HeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinitionStatics)->get_HeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::MaxHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinitionStatics)->get_MaxHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::MinHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRowDefinitionStatics)->get_MinHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::CurrentAnchor() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollAnchorProvider)->get_CurrentAnchor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::RegisterAnchorCandidate(Windows::UI::Xaml::UIElement const& element) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollAnchorProvider)->RegisterAnchorCandidate(get_abi(element)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::UnregisterAnchorCandidate(Windows::UI::Xaml::UIElement const& element) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollAnchorProvider)->UnregisterAnchorCandidate(get_abi(element)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanVerticallyScroll() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_CanVerticallyScroll(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanVerticallyScroll(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->put_CanVerticallyScroll(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanHorizontallyScroll() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_CanHorizontallyScroll(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanHorizontallyScroll(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->put_CanHorizontallyScroll(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ExtentWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ExtentWidth(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ExtentHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ExtentHeight(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ViewportWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ViewportWidth(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ViewportHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ViewportHeight(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::HorizontalOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_HorizontalOffset(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::VerticalOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_VerticalOffset(&value));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ScrollOwner() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->get_ScrollOwner(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ScrollOwner(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->put_ScrollOwner(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineUp() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->LineUp());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineDown() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->LineDown());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineLeft() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->LineLeft());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineRight() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->LineRight());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageUp() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->PageUp());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageDown() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->PageDown());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageLeft() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->PageLeft());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageRight() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->PageRight());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelUp() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MouseWheelUp());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelDown() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MouseWheelDown());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelLeft() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MouseWheelLeft());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelRight() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MouseWheelRight());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::SetHorizontalOffset(double offset) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->SetHorizontalOffset(offset));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::SetVerticalOffset(double offset) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->SetVerticalOffset(offset));
}

template <typename D> Windows::Foundation::Rect 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_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MakeVisible(get_abi(visual), get_abi(rectangle), put_abi(result)));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::CanContentRenderOutsideBounds() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter2)->get_CanContentRenderOutsideBounds(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::CanContentRenderOutsideBounds(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter2)->put_CanContentRenderOutsideBounds(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::SizesContentToTemplatedParent() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter2)->get_SizesContentToTemplatedParent(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::SizesContentToTemplatedParent(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter2)->put_SizesContentToTemplatedParent(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollContentPresenterStatics2<D>::CanContentRenderOutsideBoundsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2)->get_CanContentRenderOutsideBoundsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollContentPresenterStatics2<D>::SizesContentToTemplatedParentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2)->get_SizesContentToTemplatedParentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ScrollBarVisibility consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollBarVisibility() const
{
    Windows::UI::Xaml::Controls::ScrollBarVisibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalScrollBarVisibility(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_HorizontalScrollBarVisibility(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ScrollBarVisibility consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollBarVisibility() const
{
    Windows::UI::Xaml::Controls::ScrollBarVisibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalScrollBarVisibility(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_VerticalScrollBarVisibility(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalRailEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsHorizontalRailEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalRailEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsHorizontalRailEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalRailEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsVerticalRailEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalRailEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsVerticalRailEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalScrollChainingEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsHorizontalScrollChainingEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalScrollChainingEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsHorizontalScrollChainingEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalScrollChainingEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsVerticalScrollChainingEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalScrollChainingEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsVerticalScrollChainingEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomChainingEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsZoomChainingEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomChainingEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsZoomChainingEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsScrollInertiaEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsScrollInertiaEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsScrollInertiaEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsScrollInertiaEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomInertiaEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsZoomInertiaEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomInertiaEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsZoomInertiaEnabled(value));
}

template <typename D> Windows::UI::Xaml::Controls::ScrollMode consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollMode() const
{
    Windows::UI::Xaml::Controls::ScrollMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalScrollMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollMode(Windows::UI::Xaml::Controls::ScrollMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_HorizontalScrollMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ScrollMode consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollMode() const
{
    Windows::UI::Xaml::Controls::ScrollMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalScrollMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollMode(Windows::UI::Xaml::Controls::ScrollMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_VerticalScrollMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ZoomMode consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomMode() const
{
    Windows::UI::Xaml::Controls::ZoomMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ZoomMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomMode(Windows::UI::Xaml::Controls::ZoomMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_ZoomMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsAlignment() const
{
    Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalSnapPointsAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_HorizontalSnapPointsAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsAlignment() const
{
    Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalSnapPointsAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_VerticalSnapPointsAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SnapPointsType consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsType() const
{
    Windows::UI::Xaml::Controls::SnapPointsType value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalSnapPointsType(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_HorizontalSnapPointsType(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SnapPointsType consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsType() const
{
    Windows::UI::Xaml::Controls::SnapPointsType value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalSnapPointsType(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_VerticalSnapPointsType(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SnapPointsType consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPointsType() const
{
    Windows::UI::Xaml::Controls::SnapPointsType value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ZoomSnapPointsType(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_ZoomSnapPointsType(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_HorizontalOffset(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewportWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ViewportWidth(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollableWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ScrollableWidth(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ComputedHorizontalScrollBarVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ComputedHorizontalScrollBarVisibility(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ExtentWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ExtentWidth(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_VerticalOffset(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewportHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ViewportHeight(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollableHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ScrollableHeight(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ComputedVerticalScrollBarVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ComputedVerticalScrollBarVisibility(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ExtentHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ExtentHeight(&value));
    return value;
}

template <typename D> float consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MinZoomFactor() const
{
    float value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_MinZoomFactor(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MinZoomFactor(float value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_MinZoomFactor(value));
}

template <typename D> float consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MaxZoomFactor() const
{
    float value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_MaxZoomFactor(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MaxZoomFactor(float value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_MaxZoomFactor(value));
}

template <typename D> float consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomFactor() const
{
    float value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ZoomFactor(&value));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<float> consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPoints() const
{
    Windows::Foundation::Collections::IVector<float> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_ZoomSnapPoints(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->add_ViewChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->remove_ViewChanged(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollToHorizontalOffset(double offset) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->ScrollToHorizontalOffset(offset));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollToVerticalOffset(double offset) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->ScrollToVerticalOffset(offset));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomToFactor(float factor) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->ZoomToFactor(factor));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::InvalidateScrollInfo() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->InvalidateScrollInfo());
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsDeferredScrollingEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_IsDeferredScrollingEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsDeferredScrollingEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_IsDeferredScrollingEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::BringIntoViewOnFocusChange() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->get_BringIntoViewOnFocusChange(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::BringIntoViewOnFocusChange(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->put_BringIntoViewOnFocusChange(value));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopLeftHeader() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->get_TopLeftHeader(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopLeftHeader(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->put_TopLeftHeader(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::LeftHeader() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->get_LeftHeader(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::LeftHeader(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->put_LeftHeader(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopHeader() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->get_TopHeader(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopHeader(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->put_TopHeader(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->add_ViewChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->remove_ViewChanging(get_abi(token)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ChangeView(optional<double> const& horizontalOffset, optional<double> const& verticalOffset, optional<float> const& zoomFactor) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->ChangeView(get_abi(horizontalOffset), get_abi(verticalOffset), get_abi(zoomFactor), &result));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ChangeView(optional<double> const& horizontalOffset, optional<double> const& verticalOffset, optional<float> const& zoomFactor, bool disableAnimation) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->ChangeViewWithOptionalAnimation(get_abi(horizontalOffset), get_abi(verticalOffset), get_abi(zoomFactor), disableAnimation, &result));
    return result;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->add_DirectManipulationStarted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->remove_DirectManipulationStarted(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->add_DirectManipulationCompleted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->remove_DirectManipulationCompleted(get_abi(token)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::ReduceViewportForCoreInputViewOcclusions() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->get_ReduceViewportForCoreInputViewOcclusions(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::ReduceViewportForCoreInputViewOcclusions(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->put_ReduceViewportForCoreInputViewOcclusions(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::HorizontalAnchorRatio() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->get_HorizontalAnchorRatio(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::HorizontalAnchorRatio(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->put_HorizontalAnchorRatio(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::VerticalAnchorRatio() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->get_VerticalAnchorRatio(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::VerticalAnchorRatio(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->put_VerticalAnchorRatio(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::CanContentRenderOutsideBounds() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->get_CanContentRenderOutsideBounds(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::CanContentRenderOutsideBounds(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->put_CanContentRenderOutsideBounds(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->add_AnchorRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::AnchorRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer4)->remove_AnchorRequested(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalSnapPointsAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalSnapPointsAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalSnapPointsAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalSnapPointsAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalSnapPointsTypeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalSnapPointsTypeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalSnapPointsTypeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalSnapPointsTypeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomSnapPointsTypeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ZoomSnapPointsTypeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ViewportWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ViewportWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ScrollableWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ScrollableWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ComputedHorizontalScrollBarVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ComputedHorizontalScrollBarVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ExtentWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ExtentWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ViewportHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ViewportHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ScrollableHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ScrollableHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ComputedVerticalScrollBarVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ComputedVerticalScrollBarVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ExtentHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ExtentHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::MinZoomFactorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_MinZoomFactorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::MaxZoomFactorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_MaxZoomFactorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomFactorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ZoomFactorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomSnapPointsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ZoomSnapPointsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalScrollBarVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalScrollBarVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ScrollBarVisibility consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetHorizontalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::UI::Xaml::Controls::ScrollBarVisibility result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetHorizontalScrollBarVisibility(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetHorizontalScrollBarVisibility(get_abi(element), get_abi(horizontalScrollBarVisibility)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalScrollBarVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalScrollBarVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ScrollBarVisibility consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetVerticalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::UI::Xaml::Controls::ScrollBarVisibility result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetVerticalScrollBarVisibility(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetVerticalScrollBarVisibility(get_abi(element), get_abi(verticalScrollBarVisibility)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsHorizontalRailEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsHorizontalRailEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsHorizontalRailEnabled(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsHorizontalRailEnabled(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsHorizontalRailEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalRailEnabled) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsHorizontalRailEnabled(get_abi(element), isHorizontalRailEnabled));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsVerticalRailEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsVerticalRailEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsVerticalRailEnabled(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsVerticalRailEnabled(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsVerticalRailEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isVerticalRailEnabled) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsVerticalRailEnabled(get_abi(element), isVerticalRailEnabled));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsHorizontalScrollChainingEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsHorizontalScrollChainingEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsHorizontalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsHorizontalScrollChainingEnabled(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsHorizontalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalScrollChainingEnabled) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsHorizontalScrollChainingEnabled(get_abi(element), isHorizontalScrollChainingEnabled));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsVerticalScrollChainingEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsVerticalScrollChainingEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsVerticalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsVerticalScrollChainingEnabled(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsVerticalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isVerticalScrollChainingEnabled) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsVerticalScrollChainingEnabled(get_abi(element), isVerticalScrollChainingEnabled));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsZoomChainingEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsZoomChainingEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsZoomChainingEnabled(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsZoomChainingEnabled(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsZoomChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isZoomChainingEnabled) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsZoomChainingEnabled(get_abi(element), isZoomChainingEnabled));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsScrollInertiaEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsScrollInertiaEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsScrollInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsScrollInertiaEnabled(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsScrollInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isScrollInertiaEnabled) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsScrollInertiaEnabled(get_abi(element), isScrollInertiaEnabled));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsZoomInertiaEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsZoomInertiaEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsZoomInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsZoomInertiaEnabled(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsZoomInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isZoomInertiaEnabled) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsZoomInertiaEnabled(get_abi(element), isZoomInertiaEnabled));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalScrollModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_HorizontalScrollModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ScrollMode consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetHorizontalScrollMode(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::UI::Xaml::Controls::ScrollMode result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetHorizontalScrollMode(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetHorizontalScrollMode(get_abi(element), get_abi(horizontalScrollMode)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalScrollModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_VerticalScrollModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ScrollMode consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetVerticalScrollMode(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::UI::Xaml::Controls::ScrollMode result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetVerticalScrollMode(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetVerticalScrollMode(get_abi(element), get_abi(verticalScrollMode)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_ZoomModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ZoomMode consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetZoomMode(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::UI::Xaml::Controls::ZoomMode result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetZoomMode(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetZoomMode(get_abi(element), get_abi(zoomMode)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsDeferredScrollingEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_IsDeferredScrollingEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsDeferredScrollingEnabled(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsDeferredScrollingEnabled(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsDeferredScrollingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isDeferredScrollingEnabled) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetIsDeferredScrollingEnabled(get_abi(element), isDeferredScrollingEnabled));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::BringIntoViewOnFocusChangeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->get_BringIntoViewOnFocusChangeProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetBringIntoViewOnFocusChange(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetBringIntoViewOnFocusChange(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetBringIntoViewOnFocusChange(Windows::UI::Xaml::DependencyObject const& element, bool bringIntoViewOnFocusChange) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->SetBringIntoViewOnFocusChange(get_abi(element), bringIntoViewOnFocusChange));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::TopLeftHeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics2)->get_TopLeftHeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::LeftHeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics2)->get_LeftHeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::TopHeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics2)->get_TopHeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::ReduceViewportForCoreInputViewOcclusionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->get_ReduceViewportForCoreInputViewOcclusionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::HorizontalAnchorRatioProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->get_HorizontalAnchorRatioProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::VerticalAnchorRatioProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->get_VerticalAnchorRatioProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::CanContentRenderOutsideBoundsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->get_CanContentRenderOutsideBoundsProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::GetCanContentRenderOutsideBounds(Windows::UI::Xaml::DependencyObject const& element) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->GetCanContentRenderOutsideBounds(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::SetCanContentRenderOutsideBounds(Windows::UI::Xaml::DependencyObject const& element, bool canContentRenderOutsideBounds) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics4)->SetCanContentRenderOutsideBounds(get_abi(element), canContentRenderOutsideBounds));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::HorizontalOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerView)->get_HorizontalOffset(&value));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::VerticalOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerView)->get_VerticalOffset(&value));
    return value;
}

template <typename D> float consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::ZoomFactor() const
{
    float value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerView)->get_ZoomFactor(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangedEventArgs<D>::IsIntermediate() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs)->get_IsIntermediate(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ScrollViewerView consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::NextView() const
{
    Windows::UI::Xaml::Controls::ScrollViewerView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs)->get_NextView(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ScrollViewerView consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::FinalView() const
{
    Windows::UI::Xaml::Controls::ScrollViewerView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs)->get_FinalView(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::IsInertial() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs)->get_IsInertial(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_SearchHistoryEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_SearchHistoryEnabled(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryContext() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_SearchHistoryContext(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryContext(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_SearchHistoryContext(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PlaceholderText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_PlaceholderText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PlaceholderText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_PlaceholderText(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_QueryText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_QueryText(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISearchBox<D>::FocusOnKeyboardInput() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_FocusOnKeyboardInput(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::FocusOnKeyboardInput(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_FocusOnKeyboardInput(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ChooseSuggestionOnEnter() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->get_ChooseSuggestionOnEnter(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ChooseSuggestionOnEnter(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->put_ChooseSuggestionOnEnter(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_QueryChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_QueryChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_SuggestionsRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_SuggestionsRequested(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_QuerySubmitted(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_QuerySubmitted(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_ResultSuggestionChosen(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_ResultSuggestionChosen(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_PrepareForFocusOnKeyboardInput(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_PrepareForFocusOnKeyboardInput(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SetLocalContentSuggestionSettings(Windows::ApplicationModel::Search::LocalContentSuggestionSettings const& settings) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->SetLocalContentSuggestionSettings(get_abi(settings)));
}

template <typename D> Windows::UI::Xaml::Controls::SearchBox consume_Windows_UI_Xaml_Controls_ISearchBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SearchBox value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::QueryText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs)->get_QueryText(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::Language() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs)->get_Language(put_abi(value)));
    return value;
}

template <typename D> Windows::ApplicationModel::Search::SearchQueryLinguisticDetails consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::LinguisticDetails() const
{
    Windows::ApplicationModel::Search::SearchQueryLinguisticDetails value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs)->get_LinguisticDetails(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::QueryText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs)->get_QueryText(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::Language() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs)->get_Language(put_abi(value)));
    return value;
}

template <typename D> Windows::ApplicationModel::Search::SearchQueryLinguisticDetails consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::LinguisticDetails() const
{
    Windows::ApplicationModel::Search::SearchQueryLinguisticDetails value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs)->get_LinguisticDetails(put_abi(value)));
    return value;
}

template <typename D> Windows::System::VirtualKeyModifiers consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::KeyModifiers() const
{
    Windows::System::VirtualKeyModifiers value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs)->get_KeyModifiers(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBoxResultSuggestionChosenEventArgs<D>::Tag() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs)->get_Tag(put_abi(value)));
    return value;
}

template <typename D> Windows::System::VirtualKeyModifiers consume_Windows_UI_Xaml_Controls_ISearchBoxResultSuggestionChosenEventArgs<D>::KeyModifiers() const
{
    Windows::System::VirtualKeyModifiers value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs)->get_KeyModifiers(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::SearchHistoryEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_SearchHistoryEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::SearchHistoryContextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_SearchHistoryContextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::PlaceholderTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_PlaceholderTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::QueryTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_QueryTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::FocusOnKeyboardInputProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_FocusOnKeyboardInputProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::ChooseSuggestionOnEnterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxStatics)->get_ChooseSuggestionOnEnterProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::QueryText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs)->get_QueryText(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::Language() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs)->get_Language(put_abi(value)));
    return value;
}

template <typename D> Windows::ApplicationModel::Search::SearchQueryLinguisticDetails consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::LinguisticDetails() const
{
    Windows::ApplicationModel::Search::SearchQueryLinguisticDetails value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs)->get_LinguisticDetails(put_abi(value)));
    return value;
}

template <typename D> Windows::ApplicationModel::Search::SearchSuggestionsRequest consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::Request() const
{
    Windows::ApplicationModel::Search::SearchSuggestionsRequest value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs)->get_Request(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection> consume_Windows_UI_Xaml_Controls_ISectionsInViewChangedEventArgs<D>::AddedSections() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs)->get_AddedSections(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection> consume_Windows_UI_Xaml_Controls_ISectionsInViewChangedEventArgs<D>::RemovedSections() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs)->get_RemovedSections(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_ISelectionChangedEventArgs<D>::AddedItems() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISelectionChangedEventArgs)->get_AddedItems(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_ISelectionChangedEventArgs<D>::RemovedItems() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISelectionChangedEventArgs)->get_RemovedItems(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::SelectionChangedEventArgs 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
{
    Windows::UI::Xaml::Controls::SelectionChangedEventArgs value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory)->CreateInstanceWithRemovedItemsAndAddedItems(get_abi(removedItems), get_abi(addedItems), get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ISemanticZoomInformation consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedInView() const
{
    Windows::UI::Xaml::Controls::ISemanticZoomInformation value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_ZoomedInView(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedInView(Windows::UI::Xaml::Controls::ISemanticZoomInformation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_ZoomedInView(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ISemanticZoomInformation consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedOutView() const
{
    Windows::UI::Xaml::Controls::ISemanticZoomInformation value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_ZoomedOutView(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedOutView(Windows::UI::Xaml::Controls::ISemanticZoomInformation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_ZoomedOutView(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomedInViewActive() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_IsZoomedInViewActive(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomedInViewActive(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_IsZoomedInViewActive(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::CanChangeViews() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_CanChangeViews(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::CanChangeViews(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_CanChangeViews(value));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->add_ViewChangeStarted(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->remove_ViewChangeStarted(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->add_ViewChangeCompleted(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->remove_ViewChangeCompleted(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ToggleActiveView() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->ToggleActiveView());
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomOutButtonEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->get_IsZoomOutButtonEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomOutButtonEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->put_IsZoomOutButtonEnabled(value));
}

template <typename D> Windows::UI::Xaml::Controls::SemanticZoom consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::SemanticZoomOwner() const
{
    Windows::UI::Xaml::Controls::SemanticZoom value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->get_SemanticZoomOwner(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::SemanticZoomOwner(Windows::UI::Xaml::Controls::SemanticZoom const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->put_SemanticZoomOwner(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsActiveView() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->get_IsActiveView(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsActiveView(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->put_IsActiveView(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsZoomedInView() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->get_IsZoomedInView(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsZoomedInView(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->put_IsZoomedInView(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::InitializeViewChange() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->InitializeViewChange());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::CompleteViewChange() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->CompleteViewChange());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::MakeVisible(Windows::UI::Xaml::Controls::SemanticZoomLocation const& item) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->MakeVisible(get_abi(item)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->StartViewChangeFrom(get_abi(source), get_abi(destination)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->StartViewChangeTo(get_abi(source), get_abi(destination)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->CompleteViewChangeFrom(get_abi(source), get_abi(destination)));
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomInformation)->CompleteViewChangeTo(get_abi(source), get_abi(destination)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Item() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomLocation)->get_Item(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Item(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomLocation)->put_Item(get_abi(value)));
}

template <typename D> Windows::Foundation::Rect consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Bounds() const
{
    Windows::Foundation::Rect value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomLocation)->get_Bounds(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Bounds(Windows::Foundation::Rect const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomLocation)->put_Bounds(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::ZoomedInViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_ZoomedInViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::ZoomedOutViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_ZoomedOutViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::IsZoomedInViewActiveProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_IsZoomedInViewActiveProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::CanChangeViewsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_CanChangeViewsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::IsZoomOutButtonEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomStatics)->get_IsZoomOutButtonEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::IsSourceZoomedInView() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->get_IsSourceZoomedInView(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::IsSourceZoomedInView(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->put_IsSourceZoomedInView(value));
}

template <typename D> Windows::UI::Xaml::Controls::SemanticZoomLocation consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::SourceItem() const
{
    Windows::UI::Xaml::Controls::SemanticZoomLocation value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->get_SourceItem(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::SourceItem(Windows::UI::Xaml::Controls::SemanticZoomLocation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->put_SourceItem(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SemanticZoomLocation consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::DestinationItem() const
{
    Windows::UI::Xaml::Controls::SemanticZoomLocation value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->get_DestinationItem(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::DestinationItem(Windows::UI::Xaml::Controls::SemanticZoomLocation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs)->put_DestinationItem(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Title() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_Title(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Title(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->put_Title(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderBackground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_HeaderBackground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderBackground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->put_HeaderBackground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_HeaderForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->put_HeaderForeground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::ImageSource consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::IconSource() const
{
    Windows::UI::Xaml::Media::ImageSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_IconSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::IconSource(Windows::UI::Xaml::Media::ImageSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->put_IconSource(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(Windows::UI::Xaml::Controls::BackClickEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->add_BackClick(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->remove_BackClick(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Show() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->Show());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::ShowIndependent() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->ShowIndependent());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Hide() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->Hide());
}

template <typename D> Windows::UI::Xaml::Controls::SettingsFlyout consume_Windows_UI_Xaml_Controls_ISettingsFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SettingsFlyout value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::TitleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutStatics)->get_TitleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::HeaderBackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutStatics)->get_HeaderBackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::HeaderForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutStatics)->get_HeaderForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::IconSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutStatics)->get_IconSourceProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ISlider<D>::IntermediateValue() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_IntermediateValue(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::IntermediateValue(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_IntermediateValue(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ISlider<D>::StepFrequency() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_StepFrequency(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::StepFrequency(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_StepFrequency(value));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo consume_Windows_UI_Xaml_Controls_ISlider<D>::SnapsTo() const
{
    Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_SnapsTo(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::SnapsTo(Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_SnapsTo(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ISlider<D>::TickFrequency() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_TickFrequency(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::TickFrequency(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_TickFrequency(value));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::TickPlacement consume_Windows_UI_Xaml_Controls_ISlider<D>::TickPlacement() const
{
    Windows::UI::Xaml::Controls::Primitives::TickPlacement value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_TickPlacement(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::TickPlacement(Windows::UI::Xaml::Controls::Primitives::TickPlacement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_TickPlacement(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_ISlider<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_Orientation(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISlider<D>::IsDirectionReversed() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_IsDirectionReversed(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::IsDirectionReversed(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_IsDirectionReversed(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISlider<D>::IsThumbToolTipEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_IsThumbToolTipEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::IsThumbToolTipEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_IsThumbToolTipEnabled(value));
}

template <typename D> Windows::UI::Xaml::Data::IValueConverter consume_Windows_UI_Xaml_Controls_ISlider<D>::ThumbToolTipValueConverter() const
{
    Windows::UI::Xaml::Data::IValueConverter value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->get_ThumbToolTipValueConverter(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider<D>::ThumbToolTipValueConverter(Windows::UI::Xaml::Data::IValueConverter const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider)->put_ThumbToolTipValueConverter(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ISlider2<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider2)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider2<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider2)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_ISlider2<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider2)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISlider2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISlider2)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Slider consume_Windows_UI_Xaml_Controls_ISliderFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::Slider value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IntermediateValueProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_IntermediateValueProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::StepFrequencyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_StepFrequencyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::SnapsToProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_SnapsToProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::TickFrequencyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_TickFrequencyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::TickPlacementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_TickPlacementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IsDirectionReversedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_IsDirectionReversedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IsThumbToolTipEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_IsThumbToolTipEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::ThumbToolTipValueConverterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics)->get_ThumbToolTipValueConverterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics2<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics2)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISliderStatics2<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderStatics2)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Flyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->get_Flyout(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Flyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->put_Flyout(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Input::ICommand consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Command() const
{
    Windows::UI::Xaml::Input::ICommand value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->get_Command(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Command(Windows::UI::Xaml::Input::ICommand const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->put_Command(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ISplitButton<D>::CommandParameter() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->get_CommandParameter(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitButton<D>::CommandParameter(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->put_CommandParameter(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->add_Click(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Click(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButton)->remove_Click(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::SplitButtonAutomationPeer 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
{
    Windows::UI::Xaml::Controls::SplitButtonAutomationPeer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory)->CreateInstance(get_abi(owner), get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::SplitButton consume_Windows_UI_Xaml_Controls_ISplitButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SplitButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::FlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButtonStatics)->get_FlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::CommandProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButtonStatics)->get_CommandProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::CommandParameterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitButtonStatics)->get_CommandParameterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_ISplitView<D>::Content() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_Content(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::Content(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_Content(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_ISplitView<D>::Pane() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_Pane(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::Pane(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_Pane(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISplitView<D>::IsPaneOpen() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_IsPaneOpen(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::IsPaneOpen(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_IsPaneOpen(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ISplitView<D>::OpenPaneLength() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_OpenPaneLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::OpenPaneLength(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_OpenPaneLength(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ISplitView<D>::CompactPaneLength() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_CompactPaneLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::CompactPaneLength(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_CompactPaneLength(value));
}

template <typename D> Windows::UI::Xaml::Controls::SplitViewPanePlacement consume_Windows_UI_Xaml_Controls_ISplitView<D>::PanePlacement() const
{
    Windows::UI::Xaml::Controls::SplitViewPanePlacement value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_PanePlacement(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::PanePlacement(Windows::UI::Xaml::Controls::SplitViewPanePlacement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_PanePlacement(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SplitViewDisplayMode consume_Windows_UI_Xaml_Controls_ISplitView<D>::DisplayMode() const
{
    Windows::UI::Xaml::Controls::SplitViewDisplayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_DisplayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::DisplayMode(Windows::UI::Xaml::Controls::SplitViewDisplayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_DisplayMode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings consume_Windows_UI_Xaml_Controls_ISplitView<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneBackground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->get_PaneBackground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneBackground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->put_PaneBackground(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISplitView)->add_PaneClosing(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->remove_PaneClosing(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISplitView)->add_PaneClosed(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->remove_PaneClosed(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::LightDismissOverlayMode consume_Windows_UI_Xaml_Controls_ISplitView2<D>::LightDismissOverlayMode() const
{
    Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView2)->get_LightDismissOverlayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView2<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView2)->put_LightDismissOverlayMode(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->add_PaneOpening(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->remove_PaneOpening(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->add_PaneOpened(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->remove_PaneOpened(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::SplitView consume_Windows_UI_Xaml_Controls_ISplitViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SplitView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ISplitViewPaneClosingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitViewPaneClosingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::ContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_ContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PaneProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_PaneProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::IsPaneOpenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_IsPaneOpenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::OpenPaneLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_OpenPaneLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::CompactPaneLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_CompactPaneLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PanePlacementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_PanePlacementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::DisplayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_DisplayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::TemplateSettingsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_TemplateSettingsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PaneBackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics)->get_PaneBackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISplitViewStatics2<D>::LightDismissOverlayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewStatics2)->get_LightDismissOverlayModeProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IStackPanel<D>::AreScrollSnapPointsRegular() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel)->get_AreScrollSnapPointsRegular(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IStackPanel<D>::AreScrollSnapPointsRegular(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel)->put_AreScrollSnapPointsRegular(value));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IStackPanel<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IStackPanel<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel)->put_Orientation(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->get_BorderBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->put_BorderBrush(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderThickness() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->get_BorderThickness(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderThickness(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->put_BorderThickness(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::CornerRadius consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::CornerRadius() const
{
    Windows::UI::Xaml::CornerRadius value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->get_CornerRadius(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::CornerRadius(Windows::UI::Xaml::CornerRadius const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->put_CornerRadius(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel2)->put_Padding(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IStackPanel4<D>::Spacing() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel4)->get_Spacing(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IStackPanel4<D>::Spacing(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel4)->put_Spacing(value));
}

template <typename D> Windows::UI::Xaml::Controls::BackgroundSizing consume_Windows_UI_Xaml_Controls_IStackPanel5<D>::BackgroundSizing() const
{
    Windows::UI::Xaml::Controls::BackgroundSizing value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel5)->get_BackgroundSizing(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IStackPanel5<D>::BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanel5)->put_BackgroundSizing(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::StackPanel consume_Windows_UI_Xaml_Controls_IStackPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::StackPanel value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IStackPanelStatics<D>::AreScrollSnapPointsRegularProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics)->get_AreScrollSnapPointsRegularProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IStackPanelStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::BorderBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics2)->get_BorderBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::BorderThicknessProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics2)->get_BorderThicknessProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::CornerRadiusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics2)->get_CornerRadiusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics2)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IStackPanelStatics4<D>::SpacingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics4)->get_SpacingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IStackPanelStatics5<D>::BackgroundSizingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelStatics5)->get_BackgroundSizingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IStyleSelector<D>::SelectStyle(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::UI::Xaml::Style result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStyleSelector)->SelectStyle(get_abi(item), get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::StyleSelector consume_Windows_UI_Xaml_Controls_IStyleSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::StyleSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStyleSelectorFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_IStyleSelectorOverrides<D>::SelectStyleCore(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::UI::Xaml::Style result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStyleSelectorOverrides)->SelectStyleCore(get_abi(item), get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Core::CoreIndependentInputSource consume_Windows_UI_Xaml_Controls_ISwapChainBackgroundPanel2<D>::CreateCoreIndependentInputSource(Windows::UI::Core::CoreInputDeviceTypes const& deviceTypes) const
{
    Windows::UI::Core::CoreIndependentInputSource result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2)->CreateCoreIndependentInputSource(get_abi(deviceTypes), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::SwapChainBackgroundPanel consume_Windows_UI_Xaml_Controls_ISwapChainBackgroundPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SwapChainBackgroundPanel value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> float consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleX() const
{
    float value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->get_CompositionScaleX(&value));
    return value;
}

template <typename D> float consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleY() const
{
    float value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->get_CompositionScaleY(&value));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->add_CompositionScaleChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->remove_CompositionScaleChanged(get_abi(token)));
}

template <typename D> Windows::UI::Core::CoreIndependentInputSource consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CreateCoreIndependentInputSource(Windows::UI::Core::CoreInputDeviceTypes const& deviceTypes) const
{
    Windows::UI::Core::CoreIndependentInputSource result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->CreateCoreIndependentInputSource(get_abi(deviceTypes), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::SwapChainPanel consume_Windows_UI_Xaml_Controls_ISwapChainPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SwapChainPanel value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanelFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwapChainPanelStatics<D>::CompositionScaleXProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanelStatics)->get_CompositionScaleXProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwapChainPanelStatics<D>::CompositionScaleYProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanelStatics)->get_CompositionScaleYProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::SwipeItems consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::LeftItems() const
{
    Windows::UI::Xaml::Controls::SwipeItems value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->get_LeftItems(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::LeftItems(Windows::UI::Xaml::Controls::SwipeItems const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->put_LeftItems(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SwipeItems consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::RightItems() const
{
    Windows::UI::Xaml::Controls::SwipeItems value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->get_RightItems(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::RightItems(Windows::UI::Xaml::Controls::SwipeItems const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->put_RightItems(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SwipeItems consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::TopItems() const
{
    Windows::UI::Xaml::Controls::SwipeItems value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->get_TopItems(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::TopItems(Windows::UI::Xaml::Controls::SwipeItems const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->put_TopItems(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SwipeItems consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::BottomItems() const
{
    Windows::UI::Xaml::Controls::SwipeItems value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->get_BottomItems(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::BottomItems(Windows::UI::Xaml::Controls::SwipeItems const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->put_BottomItems(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::Close() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControl)->Close());
}

template <typename D> Windows::UI::Xaml::Controls::SwipeControl consume_Windows_UI_Xaml_Controls_ISwipeControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SwipeControl value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControlFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::LeftItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControlStatics)->get_LeftItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::RightItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControlStatics)->get_RightItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::TopItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControlStatics)->get_TopItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::BottomItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControlStatics)->get_BottomItemsProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Text() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_Text(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Text(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_Text(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::IconSource consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::IconSource() const
{
    Windows::UI::Xaml::Controls::IconSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_IconSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::IconSource(Windows::UI::Xaml::Controls::IconSource const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_IconSource(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Background() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_Background(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Background(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_Background(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Foreground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_Foreground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_Foreground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Input::ICommand consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Command() const
{
    Windows::UI::Xaml::Input::ICommand value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_Command(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Command(Windows::UI::Xaml::Input::ICommand const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_Command(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::CommandParameter() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_CommandParameter(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::CommandParameter(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_CommandParameter(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::BehaviorOnInvoked() const
{
    Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->get_BehaviorOnInvoked(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::BehaviorOnInvoked(Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->put_BehaviorOnInvoked(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->add_Invoked(get_abi(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> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->remove_Invoked(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::SwipeItem consume_Windows_UI_Xaml_Controls_ISwipeItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SwipeItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::SwipeControl consume_Windows_UI_Xaml_Controls_ISwipeItemInvokedEventArgs<D>::SwipeControl() const
{
    Windows::UI::Xaml::Controls::SwipeControl value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs)->get_SwipeControl(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::IconSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_IconSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::TextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_TextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::BackgroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_BackgroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::ForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_ForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::CommandProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_CommandProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::CommandParameterProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_CommandParameterProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::BehaviorOnInvokedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemStatics)->get_BehaviorOnInvokedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::SwipeMode consume_Windows_UI_Xaml_Controls_ISwipeItems<D>::Mode() const
{
    Windows::UI::Xaml::Controls::SwipeMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItems)->get_Mode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItems<D>::Mode(Windows::UI::Xaml::Controls::SwipeMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItems)->put_Mode(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SwipeItems consume_Windows_UI_Xaml_Controls_ISwipeItemsFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SwipeItems value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemsFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISwipeItemsStatics<D>::ModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemsStatics)->get_ModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Symbol consume_Windows_UI_Xaml_Controls_ISymbolIcon<D>::Symbol() const
{
    Windows::UI::Xaml::Controls::Symbol value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIcon)->get_Symbol(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISymbolIcon<D>::Symbol(Windows::UI::Xaml::Controls::Symbol const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIcon)->put_Symbol(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SymbolIcon consume_Windows_UI_Xaml_Controls_ISymbolIconFactory<D>::CreateInstanceWithSymbol(Windows::UI::Xaml::Controls::Symbol const& symbol) const
{
    Windows::UI::Xaml::Controls::SymbolIcon value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIconFactory)->CreateInstanceWithSymbol(get_abi(symbol), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Symbol consume_Windows_UI_Xaml_Controls_ISymbolIconSource<D>::Symbol() const
{
    Windows::UI::Xaml::Controls::Symbol value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSource)->get_Symbol(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISymbolIconSource<D>::Symbol(Windows::UI::Xaml::Controls::Symbol const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSource)->put_Symbol(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::SymbolIconSource consume_Windows_UI_Xaml_Controls_ISymbolIconSourceFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::SymbolIconSource value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSourceFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISymbolIconSourceStatics<D>::SymbolProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSourceStatics)->get_SymbolProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ISymbolIconStatics<D>::SymbolProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIconStatics)->get_SymbolProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontSize(value));
}

template <typename D> Windows::UI::Xaml::Media::FontFamily consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontFamily() const
{
    Windows::UI::Xaml::Media::FontFamily value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontFamily(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontFamily(Windows::UI::Xaml::Media::FontFamily const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontFamily(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontWeight consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontWeight() const
{
    Windows::UI::Text::FontWeight value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontWeight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontWeight(Windows::UI::Text::FontWeight const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontWeight(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStyle consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStyle() const
{
    Windows::UI::Text::FontStyle value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStyle(Windows::UI::Text::FontStyle const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontStyle(get_abi(value)));
}

template <typename D> Windows::UI::Text::FontStretch consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStretch() const
{
    Windows::UI::Text::FontStretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_FontStretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStretch(Windows::UI::Text::FontStretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_FontStretch(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextBlock<D>::CharacterSpacing() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_CharacterSpacing(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::CharacterSpacing(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_CharacterSpacing(value));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Foreground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_Foreground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Foreground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_Foreground(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextWrapping consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextWrapping() const
{
    Windows::UI::Xaml::TextWrapping value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_TextWrapping(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_TextWrapping(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextTrimming consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextTrimming() const
{
    Windows::UI::Xaml::TextTrimming value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_TextTrimming(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextTrimming(Windows::UI::Xaml::TextTrimming const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_TextTrimming(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextAlignment consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextAlignment() const
{
    Windows::UI::Xaml::TextAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_TextAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_TextAlignment(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Text() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_Text(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Text(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_Text(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Documents::InlineCollection consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Inlines() const
{
    Windows::UI::Xaml::Documents::InlineCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_Inlines(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Padding() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_Padding(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Padding(Windows::UI::Xaml::Thickness const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_Padding(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_LineHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_LineHeight(value));
}

template <typename D> Windows::UI::Xaml::LineStackingStrategy consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineStackingStrategy() const
{
    Windows::UI::Xaml::LineStackingStrategy value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_LineStackingStrategy(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_LineStackingStrategy(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBlock<D>::IsTextSelectionEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_IsTextSelectionEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::IsTextSelectionEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->put_IsTextSelectionEnabled(value));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectedText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_SelectedText(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContentStart() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_ContentStart(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContentEnd() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_ContentEnd(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionStart() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_SelectionStart(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Documents::TextPointer consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionEnd() const
{
    Windows::UI::Xaml::Documents::TextPointer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_SelectionEnd(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ITextBlock<D>::BaselineOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->get_BaselineOffset(&value));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->add_SelectionChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->add_ContextMenuOpening(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->remove_ContextMenuOpening(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectAll() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->SelectAll());
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->Select(get_abi(start), get_abi(end)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->Focus(get_abi(value), &result));
    return result;
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::SelectionHighlightColor() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_SelectionHighlightColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_SelectionHighlightColor(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::MaxLines() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_MaxLines(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::MaxLines(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_MaxLines(value));
}

template <typename D> Windows::UI::Xaml::TextLineBounds consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextLineBounds() const
{
    Windows::UI::Xaml::TextLineBounds value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_TextLineBounds(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextLineBounds(Windows::UI::Xaml::TextLineBounds const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_TextLineBounds(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::OpticalMarginAlignment consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::OpticalMarginAlignment() const
{
    Windows::UI::Xaml::OpticalMarginAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_OpticalMarginAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_OpticalMarginAlignment(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::IsColorFontEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_IsColorFontEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::IsColorFontEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_IsColorFontEnabled(value));
}

template <typename D> Windows::UI::Xaml::TextReadingOrder consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextReadingOrder() const
{
    Windows::UI::Xaml::TextReadingOrder value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->get_TextReadingOrder(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock2)->put_TextReadingOrder(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBlock3<D>::IsTextScaleFactorEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock3)->get_IsTextScaleFactorEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock3<D>::IsTextScaleFactorEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock3)->put_IsTextScaleFactorEnabled(value));
}

template <typename D> Windows::UI::Composition::CompositionBrush consume_Windows_UI_Xaml_Controls_ITextBlock4<D>::GetAlphaMask() const
{
    Windows::UI::Composition::CompositionBrush result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock4)->GetAlphaMask(put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Text::TextDecorations consume_Windows_UI_Xaml_Controls_ITextBlock5<D>::TextDecorations() const
{
    Windows::UI::Text::TextDecorations value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock5)->get_TextDecorations(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock5<D>::TextDecorations(Windows::UI::Text::TextDecorations const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock5)->put_TextDecorations(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmed() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->get_IsTextTrimmed(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::TextAlignment consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::HorizontalTextAlignment() const
{
    Windows::UI::Xaml::TextAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->get_HorizontalTextAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->put_HorizontalTextAlignment(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter> consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::TextHighlighters() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->get_TextHighlighters(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->add_IsTextTrimmedChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->remove_IsTextTrimmedChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::SelectionFlyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock7)->get_SelectionFlyout(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock7)->put_SelectionFlyout(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::CopySelectionToClipboard() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock7)->CopySelectionToClipboard());
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontFamilyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontFamilyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontWeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontWeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontStretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_FontStretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::CharacterSpacingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_CharacterSpacingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::ForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_ForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextWrappingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_TextWrappingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextTrimmingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_TextTrimmingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_TextAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_TextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::PaddingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_PaddingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::LineHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_LineHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::LineStackingStrategyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_LineStackingStrategyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::IsTextSelectionEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_IsTextSelectionEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::SelectedTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics)->get_SelectedTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::SelectionHighlightColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_SelectionHighlightColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::MaxLinesProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_MaxLinesProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::TextLineBoundsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_TextLineBoundsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::OpticalMarginAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_OpticalMarginAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::IsColorFontEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_IsColorFontEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::TextReadingOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics2)->get_TextReadingOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics3<D>::IsTextScaleFactorEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics3)->get_IsTextScaleFactorEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics5<D>::TextDecorationsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics5)->get_TextDecorationsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics6<D>::IsTextTrimmedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics6)->get_IsTextTrimmedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics6<D>::HorizontalTextAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics6)->get_HorizontalTextAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBlockStatics7<D>::SelectionFlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlockStatics7)->get_SelectionFlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITextBox<D>::Text() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_Text(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::Text(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_Text(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectedText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_SelectedText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectedText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_SelectedText(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionLength() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_SelectionLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionLength(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_SelectionLength(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionStart() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_SelectionStart(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionStart(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_SelectionStart(value));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextBox<D>::MaxLength() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_MaxLength(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::MaxLength(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_MaxLength(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsReadOnly() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_IsReadOnly(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsReadOnly(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_IsReadOnly(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox<D>::AcceptsReturn() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_AcceptsReturn(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::AcceptsReturn(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_AcceptsReturn(value));
}

template <typename D> Windows::UI::Xaml::TextAlignment consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextAlignment() const
{
    Windows::UI::Xaml::TextAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_TextAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_TextAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextWrapping consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextWrapping() const
{
    Windows::UI::Xaml::TextWrapping value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_TextWrapping(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextWrapping(Windows::UI::Xaml::TextWrapping const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_TextWrapping(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsSpellCheckEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_IsSpellCheckEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsSpellCheckEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_IsSpellCheckEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsTextPredictionEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_IsTextPredictionEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsTextPredictionEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_IsTextPredictionEnabled(value));
}

template <typename D> Windows::UI::Xaml::Input::InputScope consume_Windows_UI_Xaml_Controls_ITextBox<D>::InputScope() const
{
    Windows::UI::Xaml::Input::InputScope value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->get_InputScope(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::InputScope(Windows::UI::Xaml::Input::InputScope const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->put_InputScope(get_abi(value)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(Windows::UI::Xaml::Controls::TextChangedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_TextChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->remove_TextChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_SelectionChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_ContextMenuOpening(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->remove_ContextMenuOpening(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::Select(int32_t start, int32_t length) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->Select(start, length));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectAll() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->SelectAll());
}

template <typename D> Windows::Foundation::Rect consume_Windows_UI_Xaml_Controls_ITextBox<D>::GetRectFromCharacterIndex(int32_t charIndex, bool trailingEdge) const
{
    Windows::Foundation::Rect result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->GetRectFromCharacterIndex(charIndex, trailingEdge, put_abi(result)));
    return result;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_ITextBox2<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox2<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PlaceholderText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_PlaceholderText(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PlaceholderText(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_PlaceholderText(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_ITextBox2<D>::SelectionHighlightColor() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_SelectionHighlightColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox2<D>::SelectionHighlightColor(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_SelectionHighlightColor(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox2<D>::IsColorFontEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->get_IsColorFontEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox2<D>::IsColorFontEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->put_IsColorFontEnabled(value));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->add_Paste(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->remove_Paste(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionStarted(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextCompositionStarted(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextCompositionChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionEnded(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextCompositionEnded(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::TextReadingOrder consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextReadingOrder() const
{
    Windows::UI::Xaml::TextReadingOrder value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->get_TextReadingOrder(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextReadingOrder(Windows::UI::Xaml::TextReadingOrder const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->put_TextReadingOrder(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::CandidateWindowAlignment consume_Windows_UI_Xaml_Controls_ITextBox3<D>::DesiredCandidateWindowAlignment() const
{
    Windows::UI::Xaml::Controls::CandidateWindowAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->get_DesiredCandidateWindowAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->put_DesiredCandidateWindowAlignment(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_CandidateWindowBoundsChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_CandidateWindowBoundsChanged(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextChanging(get_abi(token)));
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>> consume_Windows_UI_Xaml_Controls_ITextBox4<D>::GetLinguisticAlternativesAsync() const
{
    Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox4)->GetLinguisticAlternativesAsync(put_abi(operation)));
    return operation;
}

template <typename D> Windows::UI::Xaml::Media::SolidColorBrush consume_Windows_UI_Xaml_Controls_ITextBox5<D>::SelectionHighlightColorWhenNotFocused() const
{
    Windows::UI::Xaml::Media::SolidColorBrush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox5)->get_SelectionHighlightColorWhenNotFocused(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox5<D>::SelectionHighlightColorWhenNotFocused(Windows::UI::Xaml::Media::SolidColorBrush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox5)->put_SelectionHighlightColorWhenNotFocused(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::TextAlignment consume_Windows_UI_Xaml_Controls_ITextBox6<D>::HorizontalTextAlignment() const
{
    Windows::UI::Xaml::TextAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->get_HorizontalTextAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->put_HorizontalTextAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::CharacterCasing consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CharacterCasing() const
{
    Windows::UI::Xaml::Controls::CharacterCasing value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->get_CharacterCasing(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->put_CharacterCasing(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ITextBox6<D>::PlaceholderForeground() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->get_PlaceholderForeground(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::PlaceholderForeground(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->put_PlaceholderForeground(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_CopyingToClipboard(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->remove_CopyingToClipboard(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_CuttingToClipboard(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->remove_CuttingToClipboard(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_BeforeTextChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->remove_BeforeTextChanging(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::HandwritingView consume_Windows_UI_Xaml_Controls_ITextBox7<D>::HandwritingView() const
{
    Windows::UI::Xaml::Controls::HandwritingView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox7)->get_HandwritingView(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox7<D>::HandwritingView(Windows::UI::Xaml::Controls::HandwritingView const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox7)->put_HandwritingView(get_abi(value)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox7<D>::IsHandwritingViewEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox7)->get_IsHandwritingViewEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox7<D>::IsHandwritingViewEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox7)->put_IsHandwritingViewEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanPasteClipboardContent() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_CanPasteClipboardContent(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanUndo() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_CanUndo(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanRedo() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_CanRedo(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionFlyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_SelectionFlyout(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionFlyout(Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->put_SelectionFlyout(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::FlyoutBase consume_Windows_UI_Xaml_Controls_ITextBox8<D>::ProofingMenuFlyout() const
{
    Windows::UI::Xaml::Controls::Primitives::FlyoutBase value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_ProofingMenuFlyout(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Description() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->get_Description(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Description(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->put_Description(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->add_SelectionChanging(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionChanging(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->remove_SelectionChanging(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Undo() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->Undo());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Redo() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->Redo());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::PasteFromClipboard() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->PasteFromClipboard());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CopySelectionToClipboard() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->CopySelectionToClipboard());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CutSelectionToClipboard() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->CutSelectionToClipboard());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox8<D>::ClearUndoRedoHistory() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox8)->ClearUndoRedoHistory());
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::NewText() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs)->get_NewText(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::UI::Xaml::Controls::TextBox consume_Windows_UI_Xaml_Controls_ITextBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::TextBox value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::SelectionStart() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs)->get_SelectionStart(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::SelectionLength() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs)->get_SelectionLength(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_TextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::MaxLengthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_MaxLengthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsReadOnlyProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_IsReadOnlyProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::AcceptsReturnProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_AcceptsReturnProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_TextAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextWrappingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_TextWrappingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsSpellCheckEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_IsSpellCheckEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsTextPredictionEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_IsTextPredictionEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::InputScopeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics)->get_InputScopeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::PlaceholderTextProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_PlaceholderTextProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::SelectionHighlightColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_SelectionHighlightColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::IsColorFontEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics2)->get_IsColorFontEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics3<D>::DesiredCandidateWindowAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics3)->get_DesiredCandidateWindowAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics3<D>::TextReadingOrderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics3)->get_TextReadingOrderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics5<D>::SelectionHighlightColorWhenNotFocusedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics5)->get_SelectionHighlightColorWhenNotFocusedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::HorizontalTextAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics6)->get_HorizontalTextAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::CharacterCasingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics6)->get_CharacterCasingProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::PlaceholderForegroundProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics6)->get_PlaceholderForegroundProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics7<D>::HandwritingViewProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics7)->get_HandwritingViewProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics7<D>::IsHandwritingViewEnabledProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics7)->get_IsHandwritingViewEnabledProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanPasteClipboardContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_CanPasteClipboardContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanUndoProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_CanUndoProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanRedoProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_CanRedoProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::SelectionFlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_SelectionFlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::ProofingMenuFlyoutProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_ProofingMenuFlyoutProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::DescriptionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxStatics8)->get_DescriptionProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextBoxTextChangingEventArgs2<D>::IsContentChanging() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2)->get_IsContentChanging(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::TextCommandBarFlyout consume_Windows_UI_Xaml_Controls_ITextCommandBarFlyoutFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::TextCommandBarFlyout value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextCompositionChangedEventArgs<D>::StartIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs)->get_StartIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextCompositionChangedEventArgs<D>::Length() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs)->get_Length(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextCompositionEndedEventArgs<D>::StartIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs)->get_StartIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextCompositionEndedEventArgs<D>::Length() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs)->get_Length(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextCompositionStartedEventArgs<D>::StartIndex() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs)->get_StartIndex(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITextCompositionStartedEventArgs<D>::Length() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs)->get_Length(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextControlCopyingToClipboardEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextControlCopyingToClipboardEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs)->put_Handled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextControlCuttingToClipboardEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextControlCuttingToClipboardEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs)->put_Handled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITextControlPasteEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextControlPasteEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextControlPasteEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextControlPasteEventArgs)->put_Handled(value));
}

template <typename D> Windows::Foundation::TimeSpan consume_Windows_UI_Xaml_Controls_ITimePickedEventArgs<D>::OldTime() const
{
    Windows::Foundation::TimeSpan value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickedEventArgs)->get_OldTime(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::TimeSpan consume_Windows_UI_Xaml_Controls_ITimePickedEventArgs<D>::NewTime() const
{
    Windows::Foundation::TimeSpan value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickedEventArgs)->get_NewTime(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_ITimePicker<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePicker<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITimePicker<D>::ClockIdentifier() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_ClockIdentifier(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePicker<D>::ClockIdentifier(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_ClockIdentifier(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITimePicker<D>::MinuteIncrement() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_MinuteIncrement(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePicker<D>::MinuteIncrement(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_MinuteIncrement(value));
}

template <typename D> Windows::Foundation::TimeSpan consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Time() const
{
    Windows::Foundation::TimeSpan value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->get_Time(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Time(Windows::Foundation::TimeSpan const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->put_Time(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->add_TimeChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->remove_TimeChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::LightDismissOverlayMode consume_Windows_UI_Xaml_Controls_ITimePicker2<D>::LightDismissOverlayMode() const
{
    Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker2)->get_LightDismissOverlayMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePicker2<D>::LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker2)->put_LightDismissOverlayMode(get_abi(value)));
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::TimeSpan> consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTime() const
{
    Windows::Foundation::IReference<Windows::Foundation::TimeSpan> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker3)->get_SelectedTime(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTime(optional<Windows::Foundation::TimeSpan> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker3)->put_SelectedTime(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITimePicker3)->add_SelectedTimeChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTimeChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker3)->remove_SelectedTimeChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::TimePicker consume_Windows_UI_Xaml_Controls_ITimePickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::TimePicker value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ClockIdentifier() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->get_ClockIdentifier(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ClockIdentifier(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->put_ClockIdentifier(get_abi(value)));
}

template <typename D> Windows::Foundation::TimeSpan consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::Time() const
{
    Windows::Foundation::TimeSpan value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->get_Time(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::Time(Windows::Foundation::TimeSpan const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->put_Time(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::MinuteIncrement() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->get_MinuteIncrement(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::MinuteIncrement(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->put_MinuteIncrement(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->add_TimePicked(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->remove_TimePicked(get_abi(token)));
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>> consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ShowAtAsync(Windows::UI::Xaml::FrameworkElement const& target) const
{
    Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->ShowAtAsync(get_abi(target), put_abi(operation)));
    return operation;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::ClockIdentifierProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics)->get_ClockIdentifierProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::TimeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics)->get_TimeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::MinuteIncrementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics)->get_MinuteIncrementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::TimeSpan> consume_Windows_UI_Xaml_Controls_ITimePickerSelectedValueChangedEventArgs<D>::OldTime() const
{
    Windows::Foundation::IReference<Windows::Foundation::TimeSpan> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs)->get_OldTime(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::TimeSpan> consume_Windows_UI_Xaml_Controls_ITimePickerSelectedValueChangedEventArgs<D>::NewTime() const
{
    Windows::Foundation::IReference<Windows::Foundation::TimeSpan> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs)->get_NewTime(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::ClockIdentifierProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_ClockIdentifierProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::MinuteIncrementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_MinuteIncrementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::TimeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics)->get_TimeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerStatics2<D>::LightDismissOverlayModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics2)->get_LightDismissOverlayModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITimePickerStatics3<D>::SelectedTimeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerStatics3)->get_SelectedTimeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::TimeSpan consume_Windows_UI_Xaml_Controls_ITimePickerValueChangedEventArgs<D>::OldTime() const
{
    Windows::Foundation::TimeSpan value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs)->get_OldTime(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::TimeSpan consume_Windows_UI_Xaml_Controls_ITimePickerValueChangedEventArgs<D>::NewTime() const
{
    Windows::Foundation::TimeSpan value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs)->get_NewTime(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItem<D>::IsChecked() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem)->get_IsChecked(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItem<D>::IsChecked(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem)->put_IsChecked(value));
}

template <typename D> Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItemStatics<D>::IsCheckedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics)->get_IsCheckedProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsChecked() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButton)->get_IsChecked(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsChecked(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButton)->put_IsChecked(value));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButton)->add_IsCheckedChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsCheckedChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButton)->remove_IsCheckedChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer 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
{
    Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory)->CreateInstance(get_abi(owner), get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ToggleSplitButton consume_Windows_UI_Xaml_Controls_IToggleSplitButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ToggleSplitButton value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSplitButtonFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::IsOn() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_IsOn(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::IsOn(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_IsOn(value));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Header() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_Header(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Header(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_Header(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::HeaderTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_HeaderTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::HeaderTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_HeaderTemplate(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContent() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_OnContent(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContent(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_OnContent(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContentTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_OnContentTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_OnContentTemplate(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContent() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_OffContent(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContent(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_OffContent(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContentTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_OffContentTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContentTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->put_OffContentTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->add_Toggled(get_abi(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> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->remove_Toggled(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnToggled() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchOverrides)->OnToggled());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnOnContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchOverrides)->OnOnContentChanged(get_abi(oldContent), get_abi(newContent)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnOffContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchOverrides)->OnOffContentChanged(get_abi(oldContent), get_abi(newContent)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnHeaderChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchOverrides)->OnHeaderChanged(get_abi(oldContent), get_abi(newContent)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::IsOnProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_IsOnProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::HeaderProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_HeaderProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::HeaderTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_HeaderTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OnContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_OnContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OnContentTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_OnContentTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OffContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_OffContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OffContentTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitchStatics)->get_OffContentTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IToolTip<D>::HorizontalOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_HorizontalOffset(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::HorizontalOffset(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_HorizontalOffset(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IToolTip<D>::IsOpen() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_IsOpen(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::IsOpen(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_IsOpen(value));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::PlacementMode consume_Windows_UI_Xaml_Controls_IToolTip<D>::Placement() const
{
    Windows::UI::Xaml::Controls::Primitives::PlacementMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_Placement(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::Placement(Windows::UI::Xaml::Controls::Primitives::PlacementMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_Placement(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IToolTip<D>::PlacementTarget() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_PlacementTarget(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::PlacementTarget(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_PlacementTarget(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IToolTip<D>::VerticalOffset() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_VerticalOffset(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::VerticalOffset(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->put_VerticalOffset(value));
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings consume_Windows_UI_Xaml_Controls_IToolTip<D>::TemplateSettings() const
{
    Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->get_TemplateSettings(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->add_Closed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->remove_Closed(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(Windows::UI::Xaml::RoutedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->add_Opened(get_abi(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> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->remove_Opened(get_abi(token)));
}

template <typename D> Windows::Foundation::IReference<Windows::Foundation::Rect> consume_Windows_UI_Xaml_Controls_IToolTip2<D>::PlacementRect() const
{
    Windows::Foundation::IReference<Windows::Foundation::Rect> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip2)->get_PlacementRect(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTip2<D>::PlacementRect(optional<Windows::Foundation::Rect> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip2)->put_PlacementRect(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::ToolTip consume_Windows_UI_Xaml_Controls_IToolTipFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::ToolTip value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::PlacementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->get_PlacementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::Primitives::PlacementMode 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_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetPlacement(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->SetPlacement(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::PlacementTargetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->get_PlacementTargetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::GetPlacementTarget(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::UI::Xaml::UIElement result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetPlacementTarget(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::SetPlacementTarget(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->SetPlacementTarget(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::ToolTipProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->get_ToolTipProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::GetToolTip(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetToolTip(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::SetToolTip(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->SetToolTip(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::HorizontalOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_HorizontalOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::IsOpenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_IsOpenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::PlacementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_PlacementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::PlacementTargetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_PlacementTargetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::VerticalOffsetProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics)->get_VerticalOffsetProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IToolTipStatics2<D>::PlacementRectProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipStatics2)->get_PlacementRectProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode> consume_Windows_UI_Xaml_Controls_ITreeView<D>::RootNodes() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->get_RootNodes(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewSelectionMode consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectionMode() const
{
    Windows::UI::Xaml::Controls::TreeViewSelectionMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->get_SelectionMode(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectionMode(Windows::UI::Xaml::Controls::TreeViewSelectionMode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->put_SelectionMode(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode> consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectedNodes() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->get_SelectedNodes(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expand(Windows::UI::Xaml::Controls::TreeViewNode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->Expand(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapse(Windows::UI::Xaml::Controls::TreeViewNode const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->Collapse(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectAll() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->SelectAll());
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_ItemInvoked(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->remove_ItemInvoked(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_Expanding(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->remove_Expanding(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_Collapsed(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->remove_Collapsed(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewNode consume_Windows_UI_Xaml_Controls_ITreeView2<D>::NodeFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::UI::Xaml::Controls::TreeViewNode result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->NodeFromContainer(get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ContainerFromNode(Windows::UI::Xaml::Controls::TreeViewNode const& node) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->ContainerFromNode(get_abi(node), put_abi(result)));
    return result;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    Windows::Foundation::IInspectable result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->ItemFromContainer(get_abi(container), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ContainerFromItem(Windows::Foundation::IInspectable const& item) const
{
    Windows::UI::Xaml::DependencyObject result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->ContainerFromItem(get_abi(item), put_abi(result)));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanDragItems() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_CanDragItems(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanDragItems(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_CanDragItems(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanReorderItems() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_CanReorderItems(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanReorderItems(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_CanReorderItems(value));
}

template <typename D> Windows::UI::Xaml::DataTemplate consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplate() const
{
    Windows::UI::Xaml::DataTemplate value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemTemplate(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplate(Windows::UI::Xaml::DataTemplate const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemTemplate(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::DataTemplateSelector consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplateSelector() const
{
    Windows::UI::Xaml::Controls::DataTemplateSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemTemplateSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplateSelector(Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemTemplateSelector(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Style consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyle() const
{
    Windows::UI::Xaml::Style value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemContainerStyle(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyle(Windows::UI::Xaml::Style const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemContainerStyle(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::StyleSelector consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyleSelector() const
{
    Windows::UI::Xaml::Controls::StyleSelector value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemContainerStyleSelector(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyleSelector(Windows::UI::Xaml::Controls::StyleSelector const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemContainerStyleSelector(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Animation::TransitionCollection consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerTransitions() const
{
    Windows::UI::Xaml::Media::Animation::TransitionCollection value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemContainerTransitions(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerTransitions(Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemContainerTransitions(get_abi(value)));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemsSource() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->get_ItemsSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemsSource(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->put_ItemsSource(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->add_DragItemsStarting(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsStarting(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->remove_DragItemsStarting(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->add_DragItemsCompleted(get_abi(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> void consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsCompleted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView2)->remove_DragItemsCompleted(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewNode consume_Windows_UI_Xaml_Controls_ITreeViewCollapsedEventArgs<D>::Node() const
{
    Windows::UI::Xaml::Controls::TreeViewNode value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs)->get_Node(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITreeViewCollapsedEventArgs2<D>::Item() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2)->get_Item(put_abi(value)));
    return value;
}

template <typename D> Windows::ApplicationModel::DataTransfer::DataPackageOperation consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsCompletedEventArgs<D>::DropResult() const
{
    Windows::ApplicationModel::DataTransfer::DataPackageOperation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs)->get_DropResult(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsCompletedEventArgs<D>::Items() const
{
    Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs)->get_Items(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::ApplicationModel::DataTransfer::DataPackage consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Data() const
{
    Windows::ApplicationModel::DataTransfer::DataPackage value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs)->get_Data(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Items() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs)->get_Items(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewNode consume_Windows_UI_Xaml_Controls_ITreeViewExpandingEventArgs<D>::Node() const
{
    Windows::UI::Xaml::Controls::TreeViewNode value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs)->get_Node(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITreeViewExpandingEventArgs2<D>::Item() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2)->get_Item(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::TreeView consume_Windows_UI_Xaml_Controls_ITreeViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::TreeView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphOpacity() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphOpacity(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphOpacity(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_GlyphOpacity(value));
}

template <typename D> Windows::UI::Xaml::Media::Brush consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphBrush() const
{
    Windows::UI::Xaml::Media::Brush value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphBrush(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphBrush(Windows::UI::Xaml::Media::Brush const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_GlyphBrush(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::ExpandedGlyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_ExpandedGlyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::ExpandedGlyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_ExpandedGlyph(get_abi(value)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::CollapsedGlyph() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_CollapsedGlyph(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::CollapsedGlyph(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_CollapsedGlyph(get_abi(value)));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphSize() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphSize(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphSize(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_GlyphSize(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::IsExpanded() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_IsExpanded(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::IsExpanded(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->put_IsExpanded(value));
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::TreeViewItemTemplateSettings() const
{
    Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_TreeViewItemTemplateSettings(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::HasUnrealizedChildren() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem2)->get_HasUnrealizedChildren(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::HasUnrealizedChildren(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem2)->put_HasUnrealizedChildren(value));
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::ItemsSource() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem2)->get_ItemsSource(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::ItemsSource(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem2)->put_ItemsSource(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewItem consume_Windows_UI_Xaml_Controls_ITreeViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::TreeViewItem value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::InvokedItem() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs)->get_InvokedItem(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs)->put_Handled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphOpacityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_GlyphOpacityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphBrushProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_GlyphBrushProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::ExpandedGlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_ExpandedGlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::CollapsedGlyphProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_CollapsedGlyphProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphSizeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_GlyphSizeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::IsExpandedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_IsExpandedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::TreeViewItemTemplateSettingsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics)->get_TreeViewItemTemplateSettingsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics2<D>::HasUnrealizedChildrenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics2)->get_HasUnrealizedChildrenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics2<D>::ItemsSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemStatics2)->get_ItemsSourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::ExpandedGlyphVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings)->get_ExpandedGlyphVisibility(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Visibility consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::CollapsedGlyphVisibility() const
{
    Windows::UI::Xaml::Visibility value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings)->get_CollapsedGlyphVisibility(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Thickness consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::Indentation() const
{
    Windows::UI::Xaml::Thickness value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings)->get_Indentation(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::DragItemsCount() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings)->get_DragItemsCount(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::ExpandedGlyphVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics)->get_ExpandedGlyphVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::CollapsedGlyphVisibilityProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics)->get_CollapsedGlyphVisibilityProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::IndentationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics)->get_IndentationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::DragItemsCountProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics)->get_DragItemsCountProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewList consume_Windows_UI_Xaml_Controls_ITreeViewListFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::TreeViewList value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewListFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IInspectable consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Content() const
{
    Windows::Foundation::IInspectable value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_Content(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Content(Windows::Foundation::IInspectable const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->put_Content(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewNode consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Parent() const
{
    Windows::UI::Xaml::Controls::TreeViewNode value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_Parent(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::IsExpanded() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_IsExpanded(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::IsExpanded(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->put_IsExpanded(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasChildren() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_HasChildren(&value));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Depth() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_Depth(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasUnrealizedChildren() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_HasUnrealizedChildren(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasUnrealizedChildren(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->put_HasUnrealizedChildren(value));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode> consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Children() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNode)->get_Children(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewNode consume_Windows_UI_Xaml_Controls_ITreeViewNodeFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::TreeViewNode value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::ContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeStatics)->get_ContentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::DepthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeStatics)->get_DepthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::IsExpandedProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeStatics)->get_IsExpandedProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::HasChildrenProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeStatics)->get_HasChildrenProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics<D>::SelectionModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics)->get_SelectionModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::CanDragItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_CanDragItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::CanReorderItemsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_CanReorderItemsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemTemplateProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemTemplateProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemTemplateSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemTemplateSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerStyleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemContainerStyleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerStyleSelectorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemContainerStyleSelectorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerTransitionsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemContainerTransitionsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemsSourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewStatics2)->get_ItemsSourceProperty(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IUIElementCollection<D>::Move(uint32_t oldIndex, uint32_t newIndex) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IUIElementCollection)->Move(oldIndex, newIndex));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IUserControl<D>::Content() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IUserControl)->get_Content(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IUserControl<D>::Content(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IUserControl)->put_Content(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::UserControl consume_Windows_UI_Xaml_Controls_IUserControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& baseInterface, Windows::Foundation::IInspectable& innerInterface) const
{
    Windows::UI::Xaml::Controls::UserControl value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IUserControlFactory)->CreateInstance(get_abi(baseInterface), put_abi(innerInterface), put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IUserControlStatics<D>::ContentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IUserControlStatics)->get_ContentProperty(put_abi(value)));
    return value;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_ItemHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_ItemHeight(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_ItemWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_ItemWidth(value));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_Orientation(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::HorizontalAlignment consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::HorizontalChildrenAlignment() const
{
    Windows::UI::Xaml::HorizontalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_HorizontalChildrenAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_HorizontalChildrenAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::VerticalAlignment consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::VerticalChildrenAlignment() const
{
    Windows::UI::Xaml::VerticalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_VerticalChildrenAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_VerticalChildrenAlignment(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::MaximumRowsOrColumns() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->get_MaximumRowsOrColumns(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGrid)->put_MaximumRowsOrColumns(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ItemHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_ItemHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ItemWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_ItemWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::HorizontalChildrenAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_HorizontalChildrenAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::VerticalChildrenAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_VerticalChildrenAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_MaximumRowsOrColumnsProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::RowSpanProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_RowSpanProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::GetRowSpan(Windows::UI::Xaml::UIElement const& element) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->GetRowSpan(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::SetRowSpan(Windows::UI::Xaml::UIElement const& element, int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->SetRowSpan(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ColumnSpanProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->get_ColumnSpanProperty(put_abi(value)));
    return value;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::GetColumnSpan(Windows::UI::Xaml::UIElement const& element) const
{
    int32_t result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->GetColumnSpan(get_abi(element), &result));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::SetColumnSpan(Windows::UI::Xaml::UIElement const& element, int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->SetColumnSpan(get_abi(element), value));
}

template <typename D> Windows::UI::Xaml::UIElement consume_Windows_UI_Xaml_Controls_IViewbox<D>::Child() const
{
    Windows::UI::Xaml::UIElement value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IViewbox)->get_Child(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IViewbox<D>::Child(Windows::UI::Xaml::UIElement const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IViewbox)->put_Child(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Media::Stretch consume_Windows_UI_Xaml_Controls_IViewbox<D>::Stretch() const
{
    Windows::UI::Xaml::Media::Stretch value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IViewbox)->get_Stretch(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IViewbox<D>::Stretch(Windows::UI::Xaml::Media::Stretch const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IViewbox)->put_Stretch(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::Controls::StretchDirection consume_Windows_UI_Xaml_Controls_IViewbox<D>::StretchDirection() const
{
    Windows::UI::Xaml::Controls::StretchDirection value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IViewbox)->get_StretchDirection(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IViewbox<D>::StretchDirection(Windows::UI::Xaml::Controls::StretchDirection const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IViewbox)->put_StretchDirection(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IViewboxStatics<D>::StretchProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IViewboxStatics)->get_StretchProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IViewboxStatics<D>::StretchDirectionProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IViewboxStatics)->get_StretchDirectionProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::ItemContainerGenerator consume_Windows_UI_Xaml_Controls_IVirtualizingPanel<D>::ItemContainerGenerator() const
{
    Windows::UI::Xaml::Controls::ItemContainerGenerator value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanel)->get_ItemContainerGenerator(put_abi(value)));
    return value;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides)->OnItemsChanged(get_abi(sender), get_abi(args)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingPanelOverrides<D>::OnClearChildren() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides)->OnClearChildren());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingPanelOverrides<D>::BringIndexIntoView(int32_t index) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides)->BringIndexIntoView(index));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::AddInternalChild(Windows::UI::Xaml::UIElement const& child) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelProtected)->AddInternalChild(get_abi(child)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::InsertInternalChild(int32_t index, Windows::UI::Xaml::UIElement const& child) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelProtected)->InsertInternalChild(index, get_abi(child)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::RemoveInternalChildRange(int32_t index, int32_t range) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingPanelProtected)->RemoveInternalChildRange(index, range));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::AreScrollSnapPointsRegular() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->get_AreScrollSnapPointsRegular(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::AreScrollSnapPointsRegular(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->put_AreScrollSnapPointsRegular(value));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->put_Orientation(get_abi(value)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->add_CleanUpVirtualizedItemEvent(get_abi(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> void consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->remove_CleanUpVirtualizedItemEvent(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelOverrides<D>::OnCleanUpVirtualizedItem(Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides)->OnCleanUpVirtualizedItem(get_abi(e)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::AreScrollSnapPointsRegularProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->get_AreScrollSnapPointsRegularProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::VirtualizationModeProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->get_VirtualizationModeProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::VirtualizationMode consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::GetVirtualizationMode(Windows::UI::Xaml::DependencyObject const& element) const
{
    Windows::UI::Xaml::Controls::VirtualizationMode result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->GetVirtualizationMode(get_abi(element), put_abi(result)));
    return result;
}

template <typename D> void 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_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->SetVirtualizationMode(get_abi(element), get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::IsVirtualizingProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->get_IsVirtualizingProperty(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::GetIsVirtualizing(Windows::UI::Xaml::DependencyObject const& o) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->GetIsVirtualizing(get_abi(o), &result));
    return result;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebView<D>::Source() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->get_Source(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView<D>::Source(Windows::Foundation::Uri const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->put_Source(get_abi(value)));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> consume_Windows_UI_Xaml_Controls_IWebView<D>::AllowedScriptNotifyUris() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->get_AllowedScriptNotifyUris(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView<D>::AllowedScriptNotifyUris(param::vector<Windows::Foundation::Uri> const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->put_AllowedScriptNotifyUris(get_abi(value)));
}

template <typename D> Windows::ApplicationModel::DataTransfer::DataPackage consume_Windows_UI_Xaml_Controls_IWebView<D>::DataTransferPackage() const
{
    Windows::ApplicationModel::DataTransfer::DataPackage value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->get_DataTransferPackage(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_LoadCompleted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->remove_LoadCompleted(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(Windows::UI::Xaml::Controls::NotifyEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_ScriptNotify(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->remove_ScriptNotify(get_abi(token)));
}

template <typename D> winrt::event_token consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const& handler) const
{
    winrt::event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_NavigationFailed(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->remove_NavigationFailed(get_abi(token)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IWebView<D>::InvokeScript(param::hstring const& scriptName, array_view<hstring const> arguments) const
{
    hstring result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->InvokeScript(get_abi(scriptName), arguments.size(), get_abi(arguments), put_abi(result)));
    return result;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView<D>::Navigate(Windows::Foundation::Uri const& source) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->Navigate(get_abi(source)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigateToString(param::hstring const& text) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->NavigateToString(get_abi(text)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebView2<D>::CanGoBack() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->get_CanGoBack(&value));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebView2<D>::CanGoForward() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->get_CanGoForward(&value));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IWebView2<D>::DocumentTitle() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->get_DocumentTitle(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_NavigationStarting(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_NavigationStarting(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_ContentLoading(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_ContentLoading(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_DOMContentLoaded(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_DOMContentLoaded(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::GoForward() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->GoForward());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::GoBack() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->GoBack());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::Refresh() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->Refresh());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::Stop() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->Stop());
}

template <typename D> Windows::Foundation::IAsyncAction consume_Windows_UI_Xaml_Controls_IWebView2<D>::CapturePreviewToStreamAsync(Windows::Storage::Streams::IRandomAccessStream const& stream) const
{
    Windows::Foundation::IAsyncAction operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->CapturePreviewToStreamAsync(get_abi(stream), put_abi(operation)));
    return operation;
}

template <typename D> Windows::Foundation::IAsyncOperation<hstring> consume_Windows_UI_Xaml_Controls_IWebView2<D>::InvokeScriptAsync(param::hstring const& scriptName, param::async_iterable<hstring> const& arguments) const
{
    Windows::Foundation::IAsyncOperation<hstring> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->InvokeScriptAsync(get_abi(scriptName), get_abi(arguments), put_abi(operation)));
    return operation;
}

template <typename D> Windows::Foundation::IAsyncOperation<Windows::ApplicationModel::DataTransfer::DataPackage> consume_Windows_UI_Xaml_Controls_IWebView2<D>::CaptureSelectedContentToDataPackageAsync() const
{
    Windows::Foundation::IAsyncOperation<Windows::ApplicationModel::DataTransfer::DataPackage> operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->CaptureSelectedContentToDataPackageAsync(put_abi(operation)));
    return operation;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigateToLocalStreamUri(Windows::Foundation::Uri const& source, Windows::Web::IUriToStreamResolver const& streamResolver) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->NavigateToLocalStreamUri(get_abi(source), get_abi(streamResolver)));
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebView2<D>::BuildLocalStreamUri(param::hstring const& contentIdentifier, param::hstring const& relativePath) const
{
    Windows::Foundation::Uri result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->BuildLocalStreamUri(get_abi(contentIdentifier), get_abi(relativePath), put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Color consume_Windows_UI_Xaml_Controls_IWebView2<D>::DefaultBackgroundColor() const
{
    Windows::UI::Color value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->get_DefaultBackgroundColor(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::DefaultBackgroundColor(Windows::UI::Color const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->put_DefaultBackgroundColor(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_NavigationCompleted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_NavigationCompleted(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameNavigationStarting(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameNavigationStarting(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameContentLoading(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameContentLoading(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameDOMContentLoaded(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameDOMContentLoaded(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameNavigationCompleted(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameNavigationCompleted(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_LongRunningScriptDetected(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_LongRunningScriptDetected(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_UnsafeContentWarningDisplaying(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_UnsafeContentWarningDisplaying(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_UnviewableContentIdentified(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_UnviewableContentIdentified(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigateWithHttpRequestMessage(Windows::Web::Http::HttpRequestMessage const& requestMessage) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->NavigateWithHttpRequestMessage(get_abi(requestMessage)));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebView2<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->Focus(get_abi(value), &result));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElement() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView3)->get_ContainsFullScreenElement(&value));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView3)->add_ContainsFullScreenElementChanged(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView3)->remove_ContainsFullScreenElementChanged(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::WebViewExecutionMode consume_Windows_UI_Xaml_Controls_IWebView4<D>::ExecutionMode() const
{
    Windows::UI::Xaml::Controls::WebViewExecutionMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->get_ExecutionMode(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest> consume_Windows_UI_Xaml_Controls_IWebView4<D>::DeferredPermissionRequests() const
{
    Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->get_DeferredPermissionRequests(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::WebViewSettings consume_Windows_UI_Xaml_Controls_IWebView4<D>::Settings() const
{
    Windows::UI::Xaml::Controls::WebViewSettings value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->get_Settings(put_abi(value)));
    return value;
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_UnsupportedUriSchemeIdentified(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->remove_UnsupportedUriSchemeIdentified(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_NewWindowRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->remove_NewWindowRequested(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_PermissionRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->remove_PermissionRequested(get_abi(token)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView4<D>::AddWebAllowedObject(param::hstring const& name, Windows::Foundation::IInspectable const& pObject) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->AddWebAllowedObject(get_abi(name), get_abi(pObject)));
}

template <typename D> Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest consume_Windows_UI_Xaml_Controls_IWebView4<D>::DeferredPermissionRequestById(uint32_t id) const
{
    Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->DeferredPermissionRequestById(id, put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusLeft() const
{
    Windows::UI::Xaml::DependencyObject value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView5)->get_XYFocusLeft(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusLeft(Windows::UI::Xaml::DependencyObject const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView5)->put_XYFocusLeft(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusRight() const
{
    Windows::UI::Xaml::DependencyObject value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView5)->get_XYFocusRight(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusRight(Windows::UI::Xaml::DependencyObject const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView5)->put_XYFocusRight(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusUp() const
{
    Windows::UI::Xaml::DependencyObject value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView5)->get_XYFocusUp(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusUp(Windows::UI::Xaml::DependencyObject const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView5)->put_XYFocusUp(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusDown() const
{
    Windows::UI::Xaml::DependencyObject value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView5)->get_XYFocusDown(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusDown(Windows::UI::Xaml::DependencyObject const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView5)->put_XYFocusDown(get_abi(value)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView6)->add_SeparateProcessLost(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView6)->remove_SeparateProcessLost(get_abi(token)));
}

template <typename D> winrt::event_token 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_SHIM(Windows::UI::Xaml::Controls::IWebView7)->add_WebResourceRequested(get_abi(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> void consume_Windows_UI_Xaml_Controls_IWebView7<D>::WebResourceRequested(winrt::event_token const& token) const noexcept
{
    WINRT_VERIFY_(0, WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView7)->remove_WebResourceRequested(get_abi(token)));
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SourceName() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewBrush)->get_SourceName(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SourceName(param::hstring const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewBrush)->put_SourceName(get_abi(value)));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::Redraw() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewBrush)->Redraw());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SetSource(Windows::UI::Xaml::Controls::WebView const& source) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewBrush)->SetSource(get_abi(source)));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewBrushStatics<D>::SourceNameProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewBrushStatics)->get_SourceNameProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewContentLoadingEventArgs<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewDOMContentLoadedEventArgs<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::WebViewPermissionType consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::PermissionType() const
{
    Windows::UI::Xaml::Controls::WebViewPermissionType value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->get_PermissionType(put_abi(value)));
    return value;
}

template <typename D> uint32_t consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Id() const
{
    uint32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->get_Id(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Allow() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->Allow());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Deny() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest)->Deny());
}

template <typename D> Windows::UI::Xaml::Controls::WebView consume_Windows_UI_Xaml_Controls_IWebViewFactory4<D>::CreateInstanceWithExecutionMode(Windows::UI::Xaml::Controls::WebViewExecutionMode const& executionMode) const
{
    Windows::UI::Xaml::Controls::WebView value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewFactory4)->CreateInstanceWithExecutionMode(get_abi(executionMode), put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::TimeSpan consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::ExecutionTime() const
{
    Windows::Foundation::TimeSpan value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs)->get_ExecutionTime(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::StopPageScriptExecution() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs)->get_StopPageScriptExecution(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::StopPageScriptExecution(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs)->put_StopPageScriptExecution(value));
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::IsSuccess() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs)->get_IsSuccess(&value));
    return value;
}

template <typename D> Windows::Web::WebErrorStatus consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::WebErrorStatus() const
{
    Windows::Web::WebErrorStatus value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs)->get_WebErrorStatus(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewNavigationFailedEventArgs<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> Windows::Web::WebErrorStatus consume_Windows_UI_Xaml_Controls_IWebViewNavigationFailedEventArgs<D>::WebErrorStatus() const
{
    Windows::Web::WebErrorStatus value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs)->get_WebErrorStatus(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Cancel() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs)->get_Cancel(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Cancel(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs)->put_Cancel(value));
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Referrer() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs)->get_Referrer(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs)->put_Handled(value));
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::WebViewPermissionType consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::PermissionType() const
{
    Windows::UI::Xaml::Controls::WebViewPermissionType value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->get_PermissionType(put_abi(value)));
    return value;
}

template <typename D> uint32_t consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Id() const
{
    uint32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->get_Id(&value));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::WebViewPermissionState consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::State() const
{
    Windows::UI::Xaml::Controls::WebViewPermissionState value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->get_State(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Defer() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->Defer());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Allow() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->Allow());
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Deny() const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequest)->Deny());
}

template <typename D> Windows::UI::Xaml::Controls::WebViewPermissionRequest consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequestedEventArgs<D>::PermissionRequest() const
{
    Windows::UI::Xaml::Controls::WebViewPermissionRequest value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs)->get_PermissionRequest(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsJavaScriptEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewSettings)->get_IsJavaScriptEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsJavaScriptEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewSettings)->put_IsJavaScriptEnabled(value));
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsIndexedDBEnabled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewSettings)->get_IsIndexedDBEnabled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsIndexedDBEnabled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewSettings)->put_IsIndexedDBEnabled(value));
}

template <typename D> Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::AnyScriptNotifyUri() const
{
    Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics)->get_AnyScriptNotifyUri(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::SourceProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics)->get_SourceProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::AllowedScriptNotifyUrisProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics)->get_AllowedScriptNotifyUrisProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::DataTransferPackageProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics)->get_DataTransferPackageProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::CanGoBackProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics2)->get_CanGoBackProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::CanGoForwardProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics2)->get_CanGoForwardProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::DocumentTitleProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics2)->get_DocumentTitleProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::DefaultBackgroundColorProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics2)->get_DefaultBackgroundColorProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics3<D>::ContainsFullScreenElementProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics3)->get_ContainsFullScreenElementProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::Controls::WebViewExecutionMode consume_Windows_UI_Xaml_Controls_IWebViewStatics4<D>::DefaultExecutionMode() const
{
    Windows::UI::Xaml::Controls::WebViewExecutionMode value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics4)->get_DefaultExecutionMode(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::IAsyncAction consume_Windows_UI_Xaml_Controls_IWebViewStatics4<D>::ClearTemporaryWebDataAsync() const
{
    Windows::Foundation::IAsyncAction operation{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics4)->ClearTemporaryWebDataAsync(put_abi(operation)));
    return operation;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusLeftProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics5)->get_XYFocusLeftProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusRightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics5)->get_XYFocusRightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusUpProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics5)->get_XYFocusUpProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusDownProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics5)->get_XYFocusDownProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Handled() const
{
    bool value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs)->get_Handled(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Handled(bool value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs)->put_Handled(value));
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs<D>::Uri() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs)->get_Uri(put_abi(value)));
    return value;
}

template <typename D> Windows::Foundation::Uri consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs<D>::Referrer() const
{
    Windows::Foundation::Uri value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs)->get_Referrer(put_abi(value)));
    return value;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs2<D>::MediaType() const
{
    hstring value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2)->get_MediaType(put_abi(value)));
    return value;
}

template <typename D> Windows::Web::Http::HttpRequestMessage consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Request() const
{
    Windows::Web::Http::HttpRequestMessage value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs)->get_Request(put_abi(value)));
    return value;
}

template <typename D> Windows::Web::Http::HttpResponseMessage consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Response() const
{
    Windows::Web::Http::HttpResponseMessage value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs)->get_Response(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Response(Windows::Web::Http::HttpResponseMessage const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs)->put_Response(get_abi(value)));
}

template <typename D> Windows::Foundation::Deferral consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::GetDeferral() const
{
    Windows::Foundation::Deferral result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs)->GetDeferral(put_abi(result)));
    return result;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemWidth() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_ItemWidth(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemWidth(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_ItemWidth(value));
}

template <typename D> double consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemHeight() const
{
    double value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_ItemHeight(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemHeight(double value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_ItemHeight(value));
}

template <typename D> Windows::UI::Xaml::Controls::Orientation consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::Orientation() const
{
    Windows::UI::Xaml::Controls::Orientation value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_Orientation(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::Orientation(Windows::UI::Xaml::Controls::Orientation const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_Orientation(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::HorizontalAlignment consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::HorizontalChildrenAlignment() const
{
    Windows::UI::Xaml::HorizontalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_HorizontalChildrenAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_HorizontalChildrenAlignment(get_abi(value)));
}

template <typename D> Windows::UI::Xaml::VerticalAlignment consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::VerticalChildrenAlignment() const
{
    Windows::UI::Xaml::VerticalAlignment value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_VerticalChildrenAlignment(put_abi(value)));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment const& value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_VerticalChildrenAlignment(get_abi(value)));
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::MaximumRowsOrColumns() const
{
    int32_t value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->get_MaximumRowsOrColumns(&value));
    return value;
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGrid)->put_MaximumRowsOrColumns(value));
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::ItemWidthProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_ItemWidthProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::ItemHeightProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_ItemHeightProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::OrientationProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_OrientationProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::HorizontalChildrenAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_HorizontalChildrenAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::VerticalChildrenAlignmentProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_VerticalChildrenAlignmentProperty(put_abi(value)));
    return value;
}

template <typename D> Windows::UI::Xaml::DependencyProperty consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
{
    Windows::UI::Xaml::DependencyProperty value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWrapGridStatics)->get_MaximumRowsOrColumnsProperty(put_abi(value)));
    return value;
}

template <> struct delegate<Windows::UI::Xaml::Controls::BackClickEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::BackClickEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::BackClickEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::DragItemsStartingEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::DragItemsStartingEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::DragItemsStartingEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::ItemClickEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::ItemClickEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::ItemClickEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::ListViewItemToKeyHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::ListViewItemToKeyHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::ListViewItemToKeyHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL Invoke(void* item, void** result) noexcept final
        {
            try
            {
                *result = detach_from<hstring>((*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
                return 0;
            }
            catch (...)
            {
            *result = nullptr;
                return to_hresult();
            }
        }
    };
};

template <> struct delegate<Windows::UI::Xaml::Controls::ListViewKeyToItemHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::ListViewKeyToItemHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::ListViewKeyToItemHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL Invoke(void* key, void** operation) noexcept final
        {
            try
            {
                *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::IInspectable>>((*this)(*reinterpret_cast<hstring const*>(&key)));
                return 0;
            }
            catch (...)
            {
            *operation = nullptr;
                return to_hresult();
            }
        }
    };
};

template <> struct delegate<Windows::UI::Xaml::Controls::NotifyEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::NotifyEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::NotifyEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::SelectionChangedEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::SelectionChangedEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::SelectionChangedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::TextChangedEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::TextChangedEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::TextChangedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::TextControlPasteEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::TextControlPasteEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::TextControlPasteEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 <> struct delegate<Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler>
{
    template <typename H>
    struct type : implements_delegate<Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler, H>
    {
        type(H&& handler) : implements_delegate<Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t WINRT_CALL 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 WINRT_CALL get_Anchor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Anchor, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Anchor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Anchor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Anchor, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Anchor(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AnchorCandidates(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AnchorCandidates, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::UIElement>));
            *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 WINRT_CALL get_IsOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOpen, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOpen, WINRT_WRAP(void), bool);
            this->shim().IsOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSticky(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSticky, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSticky());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSticky(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSticky, WINRT_WRAP(void), bool);
            this->shim().IsSticky(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Opened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_Opened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Closed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_Closed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_ClosedDisplayMode(Windows::UI::Xaml::Controls::AppBarClosedDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClosedDisplayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::AppBarClosedDisplayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarClosedDisplayMode>(this->shim().ClosedDisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ClosedDisplayMode(Windows::UI::Xaml::Controls::AppBarClosedDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClosedDisplayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::AppBarClosedDisplayMode const&);
            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 WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Opening(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Opening, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_Opening(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Opening, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Opening(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Closing(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Closing, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_Closing(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Closing, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::LightDismissOverlayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::LightDismissOverlayMode const&);
            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 WINRT_CALL get_Label(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Label, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Label());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Label(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Label, WINRT_WRAP(void), hstring const&);
            this->shim().Label(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(Windows::UI::Xaml::Controls::IconElement));
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IconElement const&);
            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 WINRT_CALL get_LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LabelPosition, WINRT_WRAP(Windows::UI::Xaml::Controls::CommandBarLabelPosition));
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarLabelPosition>(this->shim().LabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LabelPosition, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CommandBarLabelPosition const&);
            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 WINRT_CALL get_KeyboardAcceleratorTextOverride(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverride, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_KeyboardAcceleratorTextOverride(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverride, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::AppBarButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_LabelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LabelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LabelPositionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LabelPositionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsInOverflowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsInOverflowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DynamicOverflowOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DynamicOverflowOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverrideProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::AppBarElementContainer), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarElementContainer>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsInOverflowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsInOverflowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DynamicOverflowOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DynamicOverflowOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::AppBar), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL OnClosed(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnClosed, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().OnClosed(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnOpened(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnOpened, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            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 WINRT_CALL OnClosing(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnClosing, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().OnClosing(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnOpening(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnOpening, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::AppBarSeparator), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsInOverflowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsInOverflowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DynamicOverflowOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DynamicOverflowOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOpenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsStickyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStickyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ClosedDisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClosedDisplayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Label(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Label, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Label());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Label(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Label, WINRT_WRAP(void), hstring const&);
            this->shim().Label(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(Windows::UI::Xaml::Controls::IconElement));
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IconElement const&);
            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 WINRT_CALL get_LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LabelPosition, WINRT_WRAP(Windows::UI::Xaml::Controls::CommandBarLabelPosition));
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarLabelPosition>(this->shim().LabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LabelPosition, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CommandBarLabelPosition const&);
            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 WINRT_CALL get_KeyboardAcceleratorTextOverride(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverride, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_KeyboardAcceleratorTextOverride(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverride, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::AppBarToggleButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarToggleButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_LabelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LabelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LabelPositionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LabelPositionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsInOverflowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsInOverflowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DynamicOverflowOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DynamicOverflowOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverrideProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_MaxSuggestionListHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxSuggestionListHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MaxSuggestionListHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxSuggestionListHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxSuggestionListHeight, WINRT_WRAP(void), double);
            this->shim().MaxSuggestionListHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSuggestionListOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSuggestionListOpen, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSuggestionListOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSuggestionListOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSuggestionListOpen, WINRT_WRAP(void), bool);
            this->shim().IsSuggestionListOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextMemberPath(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextMemberPath, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().TextMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextMemberPath(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextMemberPath, WINRT_WRAP(void), hstring const&);
            this->shim().TextMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Text(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Text(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(void), hstring const&);
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_UpdateTextOnSelect(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UpdateTextOnSelect, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().UpdateTextOnSelect());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_UpdateTextOnSelect(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UpdateTextOnSelect, WINRT_WRAP(void), bool);
            this->shim().UpdateTextOnSelect(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(void), hstring const&);
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AutoMaximizeSuggestionArea(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoMaximizeSuggestionArea, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AutoMaximizeSuggestionArea());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AutoMaximizeSuggestionArea(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoMaximizeSuggestionArea, WINRT_WRAP(void), bool);
            this->shim().AutoMaximizeSuggestionArea(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextBoxStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextBoxStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().TextBoxStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextBoxStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextBoxStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().TextBoxStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SuggestionChosen(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SuggestionChosen, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const&);
            *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 WINRT_CALL remove_SuggestionChosen(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SuggestionChosen, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SuggestionChosen(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_TextChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const&);
            *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 WINRT_CALL remove_TextChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_QueryIcon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryIcon, WINRT_WRAP(Windows::UI::Xaml::Controls::IconElement));
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().QueryIcon());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_QueryIcon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryIcon, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IconElement const&);
            this->shim().QueryIcon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_QuerySubmitted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QuerySubmitted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const&);
            *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 WINRT_CALL remove_QuerySubmitted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(QuerySubmitted, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::LightDismissOverlayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::LightDismissOverlayMode const&);
            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 WINRT_CALL get_Description(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Description(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_QueryText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ChosenSuggestion(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChosenSuggestion, WINRT_WRAP(Windows::Foundation::IInspectable));
            *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 WINRT_CALL get_MaxSuggestionListHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxSuggestionListHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxSuggestionListHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSuggestionListOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSuggestionListOpenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSuggestionListOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextMemberPathProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextMemberPathProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_UpdateTextOnSelectProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UpdateTextOnSelectProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UpdateTextOnSelectProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AutoMaximizeSuggestionAreaProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoMaximizeSuggestionAreaProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoMaximizeSuggestionAreaProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextBoxStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextBoxStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_QueryIconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryIconProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DescriptionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DescriptionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *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 WINRT_CALL get_Reason(Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Reason, WINRT_WRAP(Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason));
            *value = detach_from<Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason>(this->shim().Reason());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Reason(Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Reason, WINRT_WRAP(void), Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason const&);
            this->shim().Reason(*reinterpret_cast<Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL CheckCurrent(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CheckCurrent, WINRT_WRAP(bool));
            *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 WINRT_CALL get_ReasonProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ReasonProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_UriSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UriSource, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().UriSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_UriSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UriSource, WINRT_WRAP(void), Windows::Foundation::Uri const&);
            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 WINRT_CALL get_ShowAsMonochrome(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAsMonochrome, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ShowAsMonochrome());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ShowAsMonochrome(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAsMonochrome, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::BitmapIcon), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::BitmapIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_UriSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UriSource, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().UriSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_UriSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UriSource, WINRT_WRAP(void), Windows::Foundation::Uri const&);
            this->shim().UriSource(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ShowAsMonochrome(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAsMonochrome, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ShowAsMonochrome());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ShowAsMonochrome(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAsMonochrome, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::BitmapIconSource), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::BitmapIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_UriSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UriSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UriSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ShowAsMonochromeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAsMonochromeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_UriSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UriSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ShowAsMonochromeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAsMonochromeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(Windows::UI::Xaml::CornerRadius));
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(void), Windows::UI::Xaml::CornerRadius const&);
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Child(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Child, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Child(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Child, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ChildTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChildTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ChildTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ChildTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChildTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            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 WINRT_CALL get_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(Windows::UI::Xaml::Controls::BackgroundSizing));
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(void), Windows::UI::Xaml::Controls::BackgroundSizing const&);
            this->shim().BackgroundSizing(*reinterpret_cast<Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackgroundTransition(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundTransition, WINRT_WRAP(Windows::UI::Xaml::BrushTransition));
            *value = detach_from<Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundTransition(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundTransition, WINRT_WRAP(void), Windows::UI::Xaml::BrushTransition const&);
            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 WINRT_CALL get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThicknessProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadiusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ChildTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChildTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BackgroundSizingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Button), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Button>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_FlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Flyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Flyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().Flyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Flyout(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Flyout, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::FlyoutBase const&);
            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 WINRT_CALL get_Date(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Date, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::DateTime>));
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Date(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Date, WINRT_WRAP(void), Windows::Foundation::IReference<Windows::Foundation::DateTime> const&);
            this->shim().Date(*reinterpret_cast<Windows::Foundation::IReference<Windows::Foundation::DateTime> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCalendarOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCalendarOpen, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsCalendarOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsCalendarOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCalendarOpen, WINRT_WRAP(void), bool);
            this->shim().IsCalendarOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DateFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DateFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DateFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateFormat, WINRT_WRAP(void), hstring const&);
            this->shim().DateFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(void), hstring const&);
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarViewStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarViewStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CalendarViewStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarViewStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarViewStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().CalendarViewStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinDate, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinDate(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinDate, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().MinDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDate, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxDate(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDate, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().MaxDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTodayHighlighted(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTodayHighlighted, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTodayHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTodayHighlighted(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTodayHighlighted, WINRT_WRAP(void), bool);
            this->shim().IsTodayHighlighted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::CalendarViewDisplayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CalendarViewDisplayMode const&);
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstDayOfWeek(Windows::Globalization::DayOfWeek* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstDayOfWeek, WINRT_WRAP(Windows::Globalization::DayOfWeek));
            *value = detach_from<Windows::Globalization::DayOfWeek>(this->shim().FirstDayOfWeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstDayOfWeek(Windows::Globalization::DayOfWeek value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstDayOfWeek, WINRT_WRAP(void), Windows::Globalization::DayOfWeek const&);
            this->shim().FirstDayOfWeek(*reinterpret_cast<Windows::Globalization::DayOfWeek const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayOfWeekFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayOfWeekFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DayOfWeekFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayOfWeekFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayOfWeekFormat, WINRT_WRAP(void), hstring const&);
            this->shim().DayOfWeekFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarIdentifier(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifier, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarIdentifier(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifier, WINRT_WRAP(void), hstring const&);
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsOutOfScopeEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOutOfScopeEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsOutOfScopeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsOutOfScopeEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOutOfScopeEnabled, WINRT_WRAP(void), bool);
            this->shim().IsOutOfScopeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsGroupLabelVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroupLabelVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsGroupLabelVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsGroupLabelVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroupLabelVisible, WINRT_WRAP(void), bool);
            this->shim().IsGroupLabelVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CalendarViewDayItemChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarViewDayItemChanging, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const&);
            *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 WINRT_CALL remove_CalendarViewDayItemChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CalendarViewDayItemChanging, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CalendarViewDayItemChanging(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_DateChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarDatePicker, Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const&);
            *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 WINRT_CALL remove_DateChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DateChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Opened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_Opened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Closed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_Closed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SetDisplayDate(Windows::Foundation::DateTime date) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetDisplayDate, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().SetDisplayDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&date));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetYearDecadeDisplayDimensions, WINRT_WRAP(void), int32_t, int32_t);
            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 WINRT_CALL get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::LightDismissOverlayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::LightDismissOverlayMode const&);
            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 WINRT_CALL get_Description(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Description(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_NewDate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewDate, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::DateTime>));
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OldDate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldDate, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::DateTime>));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::CalendarDatePicker), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarDatePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_DateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCalendarOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCalendarOpenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCalendarOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DateFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarViewStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarViewStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarViewStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinDateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTodayHighlightedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTodayHighlightedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTodayHighlightedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstDayOfWeekProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstDayOfWeekProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstDayOfWeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayOfWeekFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayOfWeekFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayOfWeekFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifierProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsOutOfScopeEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOutOfScopeEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOutOfScopeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsGroupLabelVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroupLabelVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DescriptionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DescriptionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CalendarIdentifier(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifier, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarIdentifier(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifier, WINRT_WRAP(void), hstring const&);
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayOfWeekFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayOfWeekFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DayOfWeekFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayOfWeekFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayOfWeekFormat, WINRT_WRAP(void), hstring const&);
            this->shim().DayOfWeekFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsGroupLabelVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroupLabelVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsGroupLabelVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsGroupLabelVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroupLabelVisible, WINRT_WRAP(void), bool);
            this->shim().IsGroupLabelVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::CalendarViewDisplayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CalendarViewDisplayMode const&);
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstDayOfWeek(Windows::Globalization::DayOfWeek* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstDayOfWeek, WINRT_WRAP(Windows::Globalization::DayOfWeek));
            *value = detach_from<Windows::Globalization::DayOfWeek>(this->shim().FirstDayOfWeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstDayOfWeek(Windows::Globalization::DayOfWeek value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstDayOfWeek, WINRT_WRAP(void), Windows::Globalization::DayOfWeek const&);
            this->shim().FirstDayOfWeek(*reinterpret_cast<Windows::Globalization::DayOfWeek const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsOutOfScopeEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOutOfScopeEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsOutOfScopeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsOutOfScopeEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOutOfScopeEnabled, WINRT_WRAP(void), bool);
            this->shim().IsOutOfScopeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTodayHighlighted(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTodayHighlighted, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTodayHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTodayHighlighted(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTodayHighlighted, WINRT_WRAP(void), bool);
            this->shim().IsTodayHighlighted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDate, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxDate(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDate, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().MaxDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinDate, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinDate(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinDate, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().MinDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NumberOfWeeksInView(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NumberOfWeeksInView, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().NumberOfWeeksInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_NumberOfWeeksInView(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NumberOfWeeksInView, WINRT_WRAP(void), int32_t);
            this->shim().NumberOfWeeksInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedDates(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedDates, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::DateTime>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::DateTime>>(this->shim().SelectedDates());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionMode(Windows::UI::Xaml::Controls::CalendarViewSelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(Windows::UI::Xaml::Controls::CalendarViewSelectionMode));
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionMode(Windows::UI::Xaml::Controls::CalendarViewSelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CalendarViewSelectionMode const&);
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FocusBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusBorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().FocusBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FocusBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusBorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().FocusBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedHoverBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedHoverBorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedHoverBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedHoverBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedHoverBorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().SelectedHoverBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedPressedBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedPressedBorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedPressedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedPressedBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedPressedBorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().SelectedPressedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedBorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedBorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().SelectedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HoverBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HoverBorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HoverBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HoverBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HoverBorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().HoverBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PressedBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PressedBorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PressedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PressedBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PressedBorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().PressedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarItemBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarItemBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().CalendarItemBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OutOfScopeBackground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OutOfScopeBackground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OutOfScopeBackground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OutOfScopeBackground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().OutOfScopeBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarItemBackground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBackground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarItemBackground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBackground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().CalendarItemBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PressedForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PressedForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PressedForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PressedForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PressedForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().PressedForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TodayForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TodayForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().TodayForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TodayForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TodayForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().TodayForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BlackoutForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BlackoutForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BlackoutForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BlackoutForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BlackoutForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().BlackoutForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().SelectedForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OutOfScopeForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OutOfScopeForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OutOfScopeForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OutOfScopeForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().OutOfScopeForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarItemForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarItemForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().CalendarItemForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayItemFontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().DayItemFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayItemFontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().DayItemFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayItemFontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().DayItemFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayItemFontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontSize, WINRT_WRAP(void), double);
            this->shim().DayItemFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayItemFontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().DayItemFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayItemFontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().DayItemFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayItemFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().DayItemFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayItemFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().DayItemFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TodayFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TodayFontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().TodayFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TodayFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TodayFontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().TodayFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfMonthLabelFontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FirstOfMonthLabelFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstOfMonthLabelFontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().FirstOfMonthLabelFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfMonthLabelFontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().FirstOfMonthLabelFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstOfMonthLabelFontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontSize, WINRT_WRAP(void), double);
            this->shim().FirstOfMonthLabelFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfMonthLabelFontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FirstOfMonthLabelFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstOfMonthLabelFontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().FirstOfMonthLabelFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfMonthLabelFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FirstOfMonthLabelFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstOfMonthLabelFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().FirstOfMonthLabelFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthYearItemFontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().MonthYearItemFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MonthYearItemFontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().MonthYearItemFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthYearItemFontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MonthYearItemFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MonthYearItemFontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontSize, WINRT_WRAP(void), double);
            this->shim().MonthYearItemFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthYearItemFontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().MonthYearItemFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MonthYearItemFontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().MonthYearItemFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthYearItemFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().MonthYearItemFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MonthYearItemFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().MonthYearItemFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfYearDecadeLabelFontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FirstOfYearDecadeLabelFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstOfYearDecadeLabelFontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().FirstOfYearDecadeLabelFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfYearDecadeLabelFontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().FirstOfYearDecadeLabelFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstOfYearDecadeLabelFontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontSize, WINRT_WRAP(void), double);
            this->shim().FirstOfYearDecadeLabelFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfYearDecadeLabelFontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FirstOfYearDecadeLabelFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstOfYearDecadeLabelFontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().FirstOfYearDecadeLabelFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfYearDecadeLabelFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FirstOfYearDecadeLabelFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FirstOfYearDecadeLabelFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().FirstOfYearDecadeLabelFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalDayItemAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalDayItemAlignment, WINRT_WRAP(Windows::UI::Xaml::HorizontalAlignment));
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalDayItemAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalDayItemAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalDayItemAlignment, WINRT_WRAP(void), Windows::UI::Xaml::HorizontalAlignment const&);
            this->shim().HorizontalDayItemAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalDayItemAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalDayItemAlignment, WINRT_WRAP(Windows::UI::Xaml::VerticalAlignment));
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalDayItemAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalDayItemAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalDayItemAlignment, WINRT_WRAP(void), Windows::UI::Xaml::VerticalAlignment const&);
            this->shim().VerticalDayItemAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalFirstOfMonthLabelAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalFirstOfMonthLabelAlignment, WINRT_WRAP(Windows::UI::Xaml::HorizontalAlignment));
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalFirstOfMonthLabelAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalFirstOfMonthLabelAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalFirstOfMonthLabelAlignment, WINRT_WRAP(void), Windows::UI::Xaml::HorizontalAlignment const&);
            this->shim().HorizontalFirstOfMonthLabelAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalFirstOfMonthLabelAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalFirstOfMonthLabelAlignment, WINRT_WRAP(Windows::UI::Xaml::VerticalAlignment));
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalFirstOfMonthLabelAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalFirstOfMonthLabelAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalFirstOfMonthLabelAlignment, WINRT_WRAP(void), Windows::UI::Xaml::VerticalAlignment const&);
            this->shim().VerticalFirstOfMonthLabelAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarItemBorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBorderThickness, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().CalendarItemBorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarItemBorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBorderThickness, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().CalendarItemBorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarViewDayItemStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarViewDayItemStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CalendarViewDayItemStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarViewDayItemStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarViewDayItemStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().CalendarViewDayItemStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CalendarViewDayItemChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarViewDayItemChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const&);
            *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 WINRT_CALL remove_CalendarViewDayItemChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CalendarViewDayItemChanging, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CalendarViewDayItemChanging(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_SelectedDatesChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedDatesChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const&);
            *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 WINRT_CALL remove_SelectedDatesChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectedDatesChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SelectedDatesChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SetDisplayDate(Windows::Foundation::DateTime date) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetDisplayDate, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().SetDisplayDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&date));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetYearDecadeDisplayDimensions, WINRT_WRAP(void), int32_t, int32_t);
            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 WINRT_CALL get_IsBlackout(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBlackout, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsBlackout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsBlackout(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBlackout, WINRT_WRAP(void), bool);
            this->shim().IsBlackout(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Date(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Date, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetDensityColors(void* colors) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetDensityColors, WINRT_WRAP(void), Windows::Foundation::Collections::IIterable<Windows::UI::Color> const&);
            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 WINRT_CALL get_InRecycleQueue(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InRecycleQueue, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().InRecycleQueue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(Windows::UI::Xaml::Controls::CalendarViewDayItem));
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDayItem>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Phase(uint32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Phase, WINRT_WRAP(uint32_t));
            *value = detach_from<uint32_t>(this->shim().Phase());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL RegisterUpdateCallback(void* callback) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RegisterUpdateCallback, WINRT_WRAP(void), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const&);
            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 WINRT_CALL RegisterUpdateCallbackWithPhase(uint32_t callbackPhase, void* callback) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RegisterUpdateCallback, WINRT_WRAP(void), uint32_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::CalendarViewDayItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDayItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IsBlackoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBlackoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBlackoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::CalendarView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_AddedDates(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AddedDates, WINRT_WRAP(Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>));
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>>(this->shim().AddedDates());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RemovedDates(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RemovedDates, WINRT_WRAP(Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>));
            *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 WINRT_CALL get_CalendarIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifierProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayOfWeekFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayOfWeekFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayOfWeekFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsGroupLabelVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroupLabelVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupLabelVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstDayOfWeekProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstDayOfWeekProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstDayOfWeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsOutOfScopeEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOutOfScopeEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOutOfScopeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTodayHighlightedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTodayHighlightedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTodayHighlightedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinDateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NumberOfWeeksInViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NumberOfWeeksInViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NumberOfWeeksInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedDatesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedDatesProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedDatesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettingsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettingsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FocusBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusBorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FocusBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedHoverBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedHoverBorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedHoverBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedPressedBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedPressedBorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedPressedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedBorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HoverBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HoverBorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HoverBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PressedBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PressedBorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PressedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarItemBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OutOfScopeBackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OutOfScopeBackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarItemBackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PressedForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PressedForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PressedForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TodayForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TodayForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TodayForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BlackoutForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BlackoutForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BlackoutForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OutOfScopeForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OutOfScopeForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarItemForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayItemFontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayItemFontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayItemFontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayItemFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayItemFontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TodayFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TodayFontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TodayFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfMonthLabelFontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfMonthLabelFontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfMonthLabelFontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfMonthLabelFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfMonthLabelFontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthYearItemFontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthYearItemFontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthYearItemFontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthYearItemFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthYearItemFontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfYearDecadeLabelFontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfYearDecadeLabelFontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfYearDecadeLabelFontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstOfYearDecadeLabelFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstOfYearDecadeLabelFontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalDayItemAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalDayItemAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalDayItemAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalDayItemAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalDayItemAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalDayItemAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalFirstOfMonthLabelAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalFirstOfMonthLabelAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalFirstOfMonthLabelAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalFirstOfMonthLabelAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalFirstOfMonthLabelAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalFirstOfMonthLabelAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarItemBorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarItemBorderThicknessProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarViewDayItemStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarViewDayItemStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Bounds(Windows::Foundation::Rect* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Bounds, WINRT_WRAP(Windows::Foundation::Rect));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Canvas), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Canvas>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_LeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetLeft(void* element, double* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetLeft, WINRT_WRAP(double), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<double>(this->shim().GetLeft(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetLeft(void* element, double length) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetLeft, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, double);
            this->shim().SetLeft(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), length);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetTop(void* element, double* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetTop, WINRT_WRAP(double), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<double>(this->shim().GetTop(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetTop(void* element, double length) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetTop, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, double);
            this->shim().SetTop(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), length);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZIndexProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetZIndex(void* element, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetZIndex, WINRT_WRAP(int32_t), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<int32_t>(this->shim().GetZIndex(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetZIndex(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetZIndex, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, int32_t);
            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 WINRT_CALL get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(Windows::Media::Capture::MediaCapture));
            *value = detach_from<Windows::Media::Capture::MediaCapture>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(void), Windows::Media::Capture::MediaCapture const&);
            this->shim().Source(*reinterpret_cast<Windows::Media::Capture::MediaCapture const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(Windows::UI::Xaml::Media::Stretch));
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(void), Windows::UI::Xaml::Media::Stretch const&);
            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 WINRT_CALL get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::CheckBox), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::CheckBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_GroupHeaderContainer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderContainer, WINRT_WRAP(Windows::UI::Xaml::Controls::ListViewBaseHeaderItem));
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewBaseHeaderItem>(this->shim().GroupHeaderContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GroupHeaderContainer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderContainer, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ListViewBaseHeaderItem const&);
            this->shim().GroupHeaderContainer(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewBaseHeaderItem const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GroupIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().GroupIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Group(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Group, WINRT_WRAP(Windows::Foundation::IInspectable));
            *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 WINRT_CALL get_ItemIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().ItemIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainer, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::SelectorItem));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SelectorItem>(this->shim().ItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemContainer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainer, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::SelectorItem const&);
            this->shim().ItemContainer(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SelectorItem const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsContainerPrepared(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsContainerPrepared, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsContainerPrepared());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsContainerPrepared(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsContainerPrepared, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_Value(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Value, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Value());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_UIElement(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UIElement, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().UIElement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_OldColor(struct struct_Windows_UI_Color* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldColor, WINRT_WRAP(Windows::UI::Color));
            *value = detach_from<Windows::UI::Color>(this->shim().OldColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NewColor(struct struct_Windows_UI_Color* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewColor, WINRT_WRAP(Windows::UI::Color));
            *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 WINRT_CALL get_Color(struct struct_Windows_UI_Color* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Color, WINRT_WRAP(Windows::UI::Color));
            *value = detach_from<Windows::UI::Color>(this->shim().Color());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Color(struct struct_Windows_UI_Color value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Color, WINRT_WRAP(void), Windows::UI::Color const&);
            this->shim().Color(*reinterpret_cast<Windows::UI::Color const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreviousColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreviousColor, WINRT_WRAP(Windows::Foundation::IReference<Windows::UI::Color>));
            *value = detach_from<Windows::Foundation::IReference<Windows::UI::Color>>(this->shim().PreviousColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PreviousColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreviousColor, WINRT_WRAP(void), Windows::Foundation::IReference<Windows::UI::Color> const&);
            this->shim().PreviousColor(*reinterpret_cast<Windows::Foundation::IReference<Windows::UI::Color> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsAlphaEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsAlphaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsAlphaEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaEnabled, WINRT_WRAP(void), bool);
            this->shim().IsAlphaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorSpectrumVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorSpectrumVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsColorSpectrumVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsColorSpectrumVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorSpectrumVisible, WINRT_WRAP(void), bool);
            this->shim().IsColorSpectrumVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorPreviewVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorPreviewVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsColorPreviewVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsColorPreviewVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorPreviewVisible, WINRT_WRAP(void), bool);
            this->shim().IsColorPreviewVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorSliderVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorSliderVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsColorSliderVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsColorSliderVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorSliderVisible, WINRT_WRAP(void), bool);
            this->shim().IsColorSliderVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsAlphaSliderVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaSliderVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsAlphaSliderVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsAlphaSliderVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaSliderVisible, WINRT_WRAP(void), bool);
            this->shim().IsAlphaSliderVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsMoreButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMoreButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsMoreButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsMoreButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMoreButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsMoreButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorChannelTextInputVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorChannelTextInputVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsColorChannelTextInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsColorChannelTextInputVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorChannelTextInputVisible, WINRT_WRAP(void), bool);
            this->shim().IsColorChannelTextInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsAlphaTextInputVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaTextInputVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsAlphaTextInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsAlphaTextInputVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaTextInputVisible, WINRT_WRAP(void), bool);
            this->shim().IsAlphaTextInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHexInputVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHexInputVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsHexInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsHexInputVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHexInputVisible, WINRT_WRAP(void), bool);
            this->shim().IsHexInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinHue(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinHue, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MinHue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinHue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinHue, WINRT_WRAP(void), int32_t);
            this->shim().MinHue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxHue(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHue, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxHue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxHue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHue, WINRT_WRAP(void), int32_t);
            this->shim().MaxHue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinSaturation(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinSaturation, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MinSaturation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinSaturation(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinSaturation, WINRT_WRAP(void), int32_t);
            this->shim().MinSaturation(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxSaturation(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxSaturation, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxSaturation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxSaturation(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxSaturation, WINRT_WRAP(void), int32_t);
            this->shim().MaxSaturation(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinValue(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinValue, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MinValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinValue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinValue, WINRT_WRAP(void), int32_t);
            this->shim().MinValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxValue(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxValue, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxValue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxValue, WINRT_WRAP(void), int32_t);
            this->shim().MaxValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColorSpectrumShape(Windows::UI::Xaml::Controls::ColorSpectrumShape* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColorSpectrumShape, WINRT_WRAP(Windows::UI::Xaml::Controls::ColorSpectrumShape));
            *value = detach_from<Windows::UI::Xaml::Controls::ColorSpectrumShape>(this->shim().ColorSpectrumShape());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ColorSpectrumShape(Windows::UI::Xaml::Controls::ColorSpectrumShape value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColorSpectrumShape, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ColorSpectrumShape const&);
            this->shim().ColorSpectrumShape(*reinterpret_cast<Windows::UI::Xaml::Controls::ColorSpectrumShape const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColorSpectrumComponents(Windows::UI::Xaml::Controls::ColorSpectrumComponents* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColorSpectrumComponents, WINRT_WRAP(Windows::UI::Xaml::Controls::ColorSpectrumComponents));
            *value = detach_from<Windows::UI::Xaml::Controls::ColorSpectrumComponents>(this->shim().ColorSpectrumComponents());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ColorSpectrumComponents(Windows::UI::Xaml::Controls::ColorSpectrumComponents value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColorSpectrumComponents, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ColorSpectrumComponents const&);
            this->shim().ColorSpectrumComponents(*reinterpret_cast<Windows::UI::Xaml::Controls::ColorSpectrumComponents const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ColorChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColorChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ColorPicker, Windows::UI::Xaml::Controls::ColorChangedEventArgs> const&);
            *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 WINRT_CALL remove_ColorChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ColorChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ColorPicker), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ColorPicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreviousColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreviousColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreviousColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsAlphaEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorSpectrumVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorSpectrumVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorSpectrumVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorPreviewVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorPreviewVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorPreviewVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorSliderVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorSliderVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorSliderVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsAlphaSliderVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaSliderVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaSliderVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsMoreButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMoreButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsMoreButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorChannelTextInputVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorChannelTextInputVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorChannelTextInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsAlphaTextInputVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAlphaTextInputVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaTextInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHexInputVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHexInputVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHexInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinHueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinHueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinHueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxHueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinSaturationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinSaturationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinSaturationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxSaturationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxSaturationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxSaturationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinValueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxValueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColorSpectrumShapeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColorSpectrumShapeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColorSpectrumShapeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColorSpectrumComponentsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColorSpectrumComponentsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Width(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Width, WINRT_WRAP(Windows::UI::Xaml::GridLength));
            *value = detach_from<Windows::UI::Xaml::GridLength>(this->shim().Width());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Width(struct struct_Windows_UI_Xaml_GridLength value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Width, WINRT_WRAP(void), Windows::UI::Xaml::GridLength const&);
            this->shim().Width(*reinterpret_cast<Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MaxWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxWidth, WINRT_WRAP(void), double);
            this->shim().MaxWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MinWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinWidth, WINRT_WRAP(void), double);
            this->shim().MinWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ActualWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ActualWidth, WINRT_WRAP(double));
            *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 WINRT_CALL get_WidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(WidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().WidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsDropDownOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDropDownOpen, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsDropDownOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsDropDownOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDropDownOpen, WINRT_WRAP(void), bool);
            this->shim().IsDropDownOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsEditable(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsEditable, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsEditable());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSelectionBoxHighlighted(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSelectionBoxHighlighted, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSelectionBoxHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxDropDownHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDropDownHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MaxDropDownHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxDropDownHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDropDownHeight, WINRT_WRAP(void), double);
            this->shim().MaxDropDownHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionBoxItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionBoxItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectionBoxItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionBoxItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionBoxItemTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectionBoxItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_DropDownClosed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DropDownClosed, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_DropDownClosed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DropDownClosed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DropDownClosed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_DropDownOpened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DropDownOpened, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_DropDownOpened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DropDownOpened, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::LightDismissOverlayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::LightDismissOverlayMode const&);
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextSearchEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSearchEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextSearchEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextSearchEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSearchEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_SelectionChangedTrigger(Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChangedTrigger, WINRT_WRAP(Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger));
            *value = detach_from<Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger>(this->shim().SelectionChangedTrigger());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionChangedTrigger(Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChangedTrigger, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger const&);
            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 WINRT_CALL get_PlaceholderForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PlaceholderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            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 WINRT_CALL put_IsEditable(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsEditable, WINRT_WRAP(void), bool);
            this->shim().IsEditable(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Text(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Text(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(void), hstring const&);
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextBoxStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextBoxStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().TextBoxStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextBoxStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextBoxStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().TextBoxStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Description(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Description(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_TextSubmitted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextSubmitted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ComboBox, Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> const&);
            *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 WINRT_CALL remove_TextSubmitted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextSubmitted, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ComboBox), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ComboBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ComboBoxItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ComboBoxItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL OnDropDownClosed(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnDropDownClosed, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().OnDropDownClosed(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnDropDownOpened(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnDropDownOpened, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_IsDropDownOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDropDownOpenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDropDownOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxDropDownHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxDropDownHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextSearchEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSearchEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectionChangedTriggerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChangedTriggerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_PlaceholderForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsEditableProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsEditableProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsEditableProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextBoxStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextBoxStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextBoxStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DescriptionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DescriptionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Text(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_PrimaryCommands(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryCommands, WINRT_WRAP(Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>));
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().PrimaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryCommands(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryCommands, WINRT_WRAP(Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>));
            *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 WINRT_CALL get_CommandBarOverflowPresenterStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandBarOverflowPresenterStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CommandBarOverflowPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CommandBarOverflowPresenterStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandBarOverflowPresenterStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().CommandBarOverflowPresenterStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandBarTemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandBarTemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings));
            *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 WINRT_CALL get_DefaultLabelPosition(Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultLabelPosition, WINRT_WRAP(Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition));
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition>(this->shim().DefaultLabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DefaultLabelPosition(Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultLabelPosition, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition const&);
            this->shim().DefaultLabelPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OverflowButtonVisibility(Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowButtonVisibility, WINRT_WRAP(Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility));
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility>(this->shim().OverflowButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OverflowButtonVisibility(Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowButtonVisibility, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility const&);
            this->shim().OverflowButtonVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsDynamicOverflowEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDynamicOverflowEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsDynamicOverflowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsDynamicOverflowEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDynamicOverflowEnabled, WINRT_WRAP(void), bool);
            this->shim().IsDynamicOverflowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_DynamicOverflowItemsChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DynamicOverflowItemsChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CommandBar, Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const&);
            *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 WINRT_CALL remove_DynamicOverflowItemsChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DynamicOverflowItemsChanging, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_IsCompact(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompact, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsCompact());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsCompact(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompact, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_IsInOverflow(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsInOverflow, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsInOverflow());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DynamicOverflowOrder(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DynamicOverflowOrder, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().DynamicOverflowOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DynamicOverflowOrder(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DynamicOverflowOrder, WINRT_WRAP(void), int32_t);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::CommandBar), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_PrimaryCommands(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryCommands, WINRT_WRAP(Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>));
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().PrimaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryCommands(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryCommands, WINRT_WRAP(Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::CommandBarFlyout), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::CommandBarOverflowPresenter), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarOverflowPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_PrimaryCommandsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryCommandsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryCommandsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryCommandsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryCommandsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CommandBarOverflowPresenterStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandBarOverflowPresenterStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DefaultLabelPositionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultLabelPositionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultLabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OverflowButtonVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowButtonVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsDynamicOverflowEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDynamicOverflowEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ItemContainer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainer, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::SelectorItem));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SelectorItem>(this->shim().ItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InRecycleQueue(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InRecycleQueue, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().InRecycleQueue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().ItemIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Phase(uint32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Phase, WINRT_WRAP(uint32_t));
            *value = detach_from<uint32_t>(this->shim().Phase());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL RegisterUpdateCallback(void* callback) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RegisterUpdateCallback, WINRT_WRAP(void), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const&);
            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 WINRT_CALL RegisterUpdateCallbackWithPhase(uint32_t callbackPhase, void* callback) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RegisterUpdateCallback, WINRT_WRAP(void), uint32_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const&);
            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 WINRT_CALL get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::DataTemplateSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ContentTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            this->shim().ContentTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ContentTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            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 WINRT_CALL get_ContentTemplateRoot(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateRoot, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentControl), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ContentControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL OnContentChanged(void* oldContent, void* newContent) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentChanged, WINRT_WRAP(void), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL OnContentTemplateChanged(void* oldContentTemplate, void* newContentTemplate) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentTemplateChanged, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&, Windows::UI::Xaml::DataTemplate const&);
            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 WINRT_CALL OnContentTemplateSelectorChanged(void* oldContentTemplateSelector, void* newContentTemplateSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentTemplateSelectorChanged, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&, Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            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 WINRT_CALL get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Title(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Title, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Title(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Title, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Title(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TitleTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().TitleTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TitleTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().TitleTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FullSizeDesired(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FullSizeDesired, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().FullSizeDesired());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FullSizeDesired(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FullSizeDesired, WINRT_WRAP(void), bool);
            this->shim().FullSizeDesired(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PrimaryButtonText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PrimaryButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PrimaryButtonText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonText, WINRT_WRAP(void), hstring const&);
            this->shim().PrimaryButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryButtonText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().SecondaryButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SecondaryButtonText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonText, WINRT_WRAP(void), hstring const&);
            this->shim().SecondaryButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PrimaryButtonCommand(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonCommand, WINRT_WRAP(Windows::UI::Xaml::Input::ICommand));
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().PrimaryButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PrimaryButtonCommand(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonCommand, WINRT_WRAP(void), Windows::UI::Xaml::Input::ICommand const&);
            this->shim().PrimaryButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryButtonCommand(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonCommand, WINRT_WRAP(Windows::UI::Xaml::Input::ICommand));
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().SecondaryButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SecondaryButtonCommand(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonCommand, WINRT_WRAP(void), Windows::UI::Xaml::Input::ICommand const&);
            this->shim().SecondaryButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PrimaryButtonCommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonCommandParameter, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().PrimaryButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PrimaryButtonCommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonCommandParameter, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().PrimaryButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryButtonCommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonCommandParameter, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SecondaryButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SecondaryButtonCommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonCommandParameter, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().SecondaryButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPrimaryButtonEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPrimaryButtonEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPrimaryButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPrimaryButtonEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPrimaryButtonEnabled, WINRT_WRAP(void), bool);
            this->shim().IsPrimaryButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSecondaryButtonEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSecondaryButtonEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSecondaryButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSecondaryButtonEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSecondaryButtonEnabled, WINRT_WRAP(void), bool);
            this->shim().IsSecondaryButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Closing(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Closing, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const&);
            *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 WINRT_CALL remove_Closing(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Closing, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Closing(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Closed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const&);
            *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 WINRT_CALL remove_Closed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Opened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const&);
            *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 WINRT_CALL remove_Opened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PrimaryButtonClick(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonClick, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const&);
            *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 WINRT_CALL remove_PrimaryButtonClick(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PrimaryButtonClick, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PrimaryButtonClick(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_SecondaryButtonClick(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonClick, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const&);
            *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 WINRT_CALL remove_SecondaryButtonClick(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SecondaryButtonClick, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SecondaryButtonClick(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL Hide() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Hide, WINRT_WRAP(void));
            this->shim().Hide();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ShowAsync(void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult>));
            *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 WINRT_CALL get_CloseButtonText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().CloseButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CloseButtonText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonText, WINRT_WRAP(void), hstring const&);
            this->shim().CloseButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CloseButtonCommand(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonCommand, WINRT_WRAP(Windows::UI::Xaml::Input::ICommand));
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().CloseButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CloseButtonCommand(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonCommand, WINRT_WRAP(void), Windows::UI::Xaml::Input::ICommand const&);
            this->shim().CloseButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CloseButtonCommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonCommandParameter, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CloseButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CloseButtonCommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonCommandParameter, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().CloseButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PrimaryButtonStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().PrimaryButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PrimaryButtonStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().PrimaryButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryButtonStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().SecondaryButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SecondaryButtonStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().SecondaryButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CloseButtonStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CloseButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CloseButtonStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().CloseButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DefaultButton(Windows::UI::Xaml::Controls::ContentDialogButton* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultButton, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentDialogButton));
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialogButton>(this->shim().DefaultButton());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DefaultButton(Windows::UI::Xaml::Controls::ContentDialogButton value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultButton, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ContentDialogButton const&);
            this->shim().DefaultButton(*reinterpret_cast<Windows::UI::Xaml::Controls::ContentDialogButton const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CloseButtonClick(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonClick, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const&);
            *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 WINRT_CALL remove_CloseButtonClick(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CloseButtonClick, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL ShowAsyncWithPlacement(Windows::UI::Xaml::Controls::ContentDialogPlacement placement, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult>), Windows::UI::Xaml::Controls::ContentDialogPlacement const);
            *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 WINRT_CALL Complete() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Complete, WINRT_WRAP(void));
            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 WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetDeferral(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetDeferral, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral));
            *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 WINRT_CALL get_Result(Windows::UI::Xaml::Controls::ContentDialogResult* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Result, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentDialogResult));
            *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 WINRT_CALL Complete() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Complete, WINRT_WRAP(void));
            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 WINRT_CALL get_Result(Windows::UI::Xaml::Controls::ContentDialogResult* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Result, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentDialogResult));
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialogResult>(this->shim().Result());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetDeferral(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetDeferral, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentDialogClosingDeferral));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentDialog), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialog>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_TitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TitleTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FullSizeDesiredProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FullSizeDesiredProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FullSizeDesiredProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PrimaryButtonTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryButtonTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PrimaryButtonCommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonCommandProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryButtonCommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonCommandProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PrimaryButtonCommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonCommandParameterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryButtonCommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonCommandParameterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPrimaryButtonEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPrimaryButtonEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPrimaryButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSecondaryButtonEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSecondaryButtonEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CloseButtonTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CloseButtonCommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonCommandProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CloseButtonCommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonCommandParameterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PrimaryButtonStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryButtonStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryButtonStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryButtonStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CloseButtonStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CloseButtonStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DefaultButtonProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultButtonProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ChangeKind(Windows::UI::Xaml::Controls::ContentLinkChangeKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChangeKind, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentLinkChangeKind));
            *value = detach_from<Windows::UI::Xaml::Controls::ContentLinkChangeKind>(this->shim().ChangeKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentLinkInfo(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkInfo, WINRT_WRAP(Windows::UI::Text::ContentLinkInfo));
            *value = detach_from<Windows::UI::Text::ContentLinkInfo>(this->shim().ContentLinkInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextRange(struct struct_Windows_UI_Xaml_Documents_TextRange* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextRange, WINRT_WRAP(Windows::UI::Xaml::Documents::TextRange));
            *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 WINRT_CALL get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::DataTemplateSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ContentTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            this->shim().ContentTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ContentTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            this->shim().ContentTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(void), double);
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStretch(Windows::UI::Text::FontStretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretch, WINRT_WRAP(Windows::UI::Text::FontStretch));
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStretch(Windows::UI::Text::FontStretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretch, WINRT_WRAP(void), Windows::UI::Text::FontStretch const&);
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterSpacing(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacing, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CharacterSpacing(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacing, WINRT_WRAP(void), int32_t);
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            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 WINRT_CALL get_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignment, WINRT_WRAP(Windows::UI::Xaml::OpticalMarginAlignment));
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignment, WINRT_WRAP(void), Windows::UI::Xaml::OpticalMarginAlignment const&);
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextLineBounds(Windows::UI::Xaml::TextLineBounds* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBounds, WINRT_WRAP(Windows::UI::Xaml::TextLineBounds));
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextLineBounds(Windows::UI::Xaml::TextLineBounds value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBounds, WINRT_WRAP(void), Windows::UI::Xaml::TextLineBounds const&);
            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 WINRT_CALL get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(Windows::UI::Xaml::TextWrapping));
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(void), Windows::UI::Xaml::TextWrapping const&);
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLines(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLines, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxLines(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLines, WINRT_WRAP(void), int32_t);
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategy, WINRT_WRAP(Windows::UI::Xaml::LineStackingStrategy));
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategy, WINRT_WRAP(void), Windows::UI::Xaml::LineStackingStrategy const&);
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LineHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeight, WINRT_WRAP(void), double);
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(Windows::UI::Xaml::CornerRadius));
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(void), Windows::UI::Xaml::CornerRadius const&);
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalContentAlignment, WINRT_WRAP(Windows::UI::Xaml::HorizontalAlignment));
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalContentAlignment, WINRT_WRAP(void), Windows::UI::Xaml::HorizontalAlignment const&);
            this->shim().HorizontalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalContentAlignment, WINRT_WRAP(Windows::UI::Xaml::VerticalAlignment));
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalContentAlignment, WINRT_WRAP(void), Windows::UI::Xaml::VerticalAlignment const&);
            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 WINRT_CALL get_BackgroundTransition(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundTransition, WINRT_WRAP(Windows::UI::Xaml::BrushTransition));
            *value = detach_from<Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundTransition(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundTransition, WINRT_WRAP(void), Windows::UI::Xaml::BrushTransition const&);
            this->shim().BackgroundTransition(*reinterpret_cast<Windows::UI::Xaml::BrushTransition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(Windows::UI::Xaml::Controls::BackgroundSizing));
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(void), Windows::UI::Xaml::Controls::BackgroundSizing const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ContentPresenter), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ContentPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL OnContentTemplateChanged(void* oldContentTemplate, void* newContentTemplate) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentTemplateChanged, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&, Windows::UI::Xaml::DataTemplate const&);
            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 WINRT_CALL OnContentTemplateSelectorChanged(void* oldContentTemplateSelector, void* newContentTemplateSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentTemplateSelectorChanged, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&, Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            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 WINRT_CALL get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_OpticalMarginAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextLineBoundsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBoundsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrappingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLinesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLinesProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineStackingStrategyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThicknessProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadiusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalContentAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalContentAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalContentAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalContentAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BackgroundSizingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CursorLeft(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CursorLeft, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().CursorLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CursorTop(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CursorTop, WINRT_WRAP(double));
            *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 WINRT_CALL get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(void), double);
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStretch(Windows::UI::Text::FontStretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretch, WINRT_WRAP(Windows::UI::Text::FontStretch));
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStretch(Windows::UI::Text::FontStretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretch, WINRT_WRAP(void), Windows::UI::Text::FontStretch const&);
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterSpacing(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacing, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CharacterSpacing(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacing, WINRT_WRAP(void), int32_t);
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTabStop(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTabStop, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTabStop());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTabStop(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTabStop, WINRT_WRAP(void), bool);
            this->shim().IsTabStop(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsEnabled, WINRT_WRAP(void), bool);
            this->shim().IsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TabIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TabIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().TabIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TabIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TabIndex, WINRT_WRAP(void), int32_t);
            this->shim().TabIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TabNavigation(Windows::UI::Xaml::Input::KeyboardNavigationMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TabNavigation, WINRT_WRAP(Windows::UI::Xaml::Input::KeyboardNavigationMode));
            *value = detach_from<Windows::UI::Xaml::Input::KeyboardNavigationMode>(this->shim().TabNavigation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TabNavigation(Windows::UI::Xaml::Input::KeyboardNavigationMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TabNavigation, WINRT_WRAP(void), Windows::UI::Xaml::Input::KeyboardNavigationMode const&);
            this->shim().TabNavigation(*reinterpret_cast<Windows::UI::Xaml::Input::KeyboardNavigationMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Template(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Template, WINRT_WRAP(Windows::UI::Xaml::Controls::ControlTemplate));
            *value = detach_from<Windows::UI::Xaml::Controls::ControlTemplate>(this->shim().Template());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Template(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Template, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ControlTemplate const&);
            this->shim().Template(*reinterpret_cast<Windows::UI::Xaml::Controls::ControlTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalContentAlignment, WINRT_WRAP(Windows::UI::Xaml::HorizontalAlignment));
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalContentAlignment, WINRT_WRAP(void), Windows::UI::Xaml::HorizontalAlignment const&);
            this->shim().HorizontalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalContentAlignment, WINRT_WRAP(Windows::UI::Xaml::VerticalAlignment));
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalContentAlignment, WINRT_WRAP(void), Windows::UI::Xaml::VerticalAlignment const&);
            this->shim().VerticalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FocusState(Windows::UI::Xaml::FocusState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusState, WINRT_WRAP(Windows::UI::Xaml::FocusState));
            *value = detach_from<Windows::UI::Xaml::FocusState>(this->shim().FocusState());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_IsEnabledChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsEnabledChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::DependencyPropertyChangedEventHandler const&);
            *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 WINRT_CALL remove_IsEnabledChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(IsEnabledChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().IsEnabledChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ApplyTemplate(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ApplyTemplate, WINRT_WRAP(bool));
            *result = detach_from<bool>(this->shim().ApplyTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Focus(Windows::UI::Xaml::FocusState value, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Focus, WINRT_WRAP(bool), Windows::UI::Xaml::FocusState const&);
            *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 WINRT_CALL get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_UseSystemFocusVisuals(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UseSystemFocusVisuals, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().UseSystemFocusVisuals());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_UseSystemFocusVisuals(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UseSystemFocusVisuals, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_IsFocusEngagementEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFocusEngagementEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFocusEngagementEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFocusEngagementEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFocusEngagementEnabled, WINRT_WRAP(void), bool);
            this->shim().IsFocusEngagementEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFocusEngaged(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFocusEngaged, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFocusEngaged());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFocusEngaged(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFocusEngaged, WINRT_WRAP(void), bool);
            this->shim().IsFocusEngaged(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RequiresPointer(Windows::UI::Xaml::Controls::RequiresPointer* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RequiresPointer, WINRT_WRAP(Windows::UI::Xaml::Controls::RequiresPointer));
            *value = detach_from<Windows::UI::Xaml::Controls::RequiresPointer>(this->shim().RequiresPointer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_RequiresPointer(Windows::UI::Xaml::Controls::RequiresPointer value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RequiresPointer, WINRT_WRAP(void), Windows::UI::Xaml::Controls::RequiresPointer const&);
            this->shim().RequiresPointer(*reinterpret_cast<Windows::UI::Xaml::Controls::RequiresPointer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusLeft(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusLeft, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_XYFocusLeft(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusLeft, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            this->shim().XYFocusLeft(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusRight(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusRight, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusRight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_XYFocusRight(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusRight, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            this->shim().XYFocusRight(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusUp(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusUp, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusUp());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_XYFocusUp(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusUp, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            this->shim().XYFocusUp(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusDown(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusDown, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusDown());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_XYFocusDown(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusDown, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            this->shim().XYFocusDown(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ElementSoundMode(Windows::UI::Xaml::ElementSoundMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ElementSoundMode, WINRT_WRAP(Windows::UI::Xaml::ElementSoundMode));
            *value = detach_from<Windows::UI::Xaml::ElementSoundMode>(this->shim().ElementSoundMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ElementSoundMode(Windows::UI::Xaml::ElementSoundMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ElementSoundMode, WINRT_WRAP(void), Windows::UI::Xaml::ElementSoundMode const&);
            this->shim().ElementSoundMode(*reinterpret_cast<Windows::UI::Xaml::ElementSoundMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_FocusEngaged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusEngaged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const&);
            *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 WINRT_CALL remove_FocusEngaged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(FocusEngaged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().FocusEngaged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_FocusDisengaged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusDisengaged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const&);
            *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 WINRT_CALL remove_FocusDisengaged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(FocusDisengaged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().FocusDisengaged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL RemoveFocusEngagement() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RemoveFocusEngagement, WINRT_WRAP(void));
            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 WINRT_CALL get_DefaultStyleResourceUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultStyleResourceUri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().DefaultStyleResourceUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DefaultStyleResourceUri(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultStyleResourceUri, WINRT_WRAP(void), Windows::Foundation::Uri const&);
            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 WINRT_CALL get_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(Windows::UI::Xaml::Controls::BackgroundSizing));
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(void), Windows::UI::Xaml::Controls::BackgroundSizing const&);
            this->shim().BackgroundSizing(*reinterpret_cast<Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(Windows::UI::Xaml::CornerRadius));
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(void), Windows::UI::Xaml::CornerRadius const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Control), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Control>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL OnPointerEntered(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPointerEntered, WINRT_WRAP(void), Windows::UI::Xaml::Input::PointerRoutedEventArgs const&);
            this->shim().OnPointerEntered(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnPointerPressed(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPointerPressed, WINRT_WRAP(void), Windows::UI::Xaml::Input::PointerRoutedEventArgs const&);
            this->shim().OnPointerPressed(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnPointerMoved(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPointerMoved, WINRT_WRAP(void), Windows::UI::Xaml::Input::PointerRoutedEventArgs const&);
            this->shim().OnPointerMoved(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnPointerReleased(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPointerReleased, WINRT_WRAP(void), Windows::UI::Xaml::Input::PointerRoutedEventArgs const&);
            this->shim().OnPointerReleased(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnPointerExited(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPointerExited, WINRT_WRAP(void), Windows::UI::Xaml::Input::PointerRoutedEventArgs const&);
            this->shim().OnPointerExited(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnPointerCaptureLost(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPointerCaptureLost, WINRT_WRAP(void), Windows::UI::Xaml::Input::PointerRoutedEventArgs const&);
            this->shim().OnPointerCaptureLost(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnPointerCanceled(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPointerCanceled, WINRT_WRAP(void), Windows::UI::Xaml::Input::PointerRoutedEventArgs const&);
            this->shim().OnPointerCanceled(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnPointerWheelChanged(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPointerWheelChanged, WINRT_WRAP(void), Windows::UI::Xaml::Input::PointerRoutedEventArgs const&);
            this->shim().OnPointerWheelChanged(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnTapped(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnTapped, WINRT_WRAP(void), Windows::UI::Xaml::Input::TappedRoutedEventArgs const&);
            this->shim().OnTapped(*reinterpret_cast<Windows::UI::Xaml::Input::TappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnDoubleTapped(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnDoubleTapped, WINRT_WRAP(void), Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const&);
            this->shim().OnDoubleTapped(*reinterpret_cast<Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnHolding(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnHolding, WINRT_WRAP(void), Windows::UI::Xaml::Input::HoldingRoutedEventArgs const&);
            this->shim().OnHolding(*reinterpret_cast<Windows::UI::Xaml::Input::HoldingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnRightTapped(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnRightTapped, WINRT_WRAP(void), Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const&);
            this->shim().OnRightTapped(*reinterpret_cast<Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnManipulationStarting(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnManipulationStarting, WINRT_WRAP(void), Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const&);
            this->shim().OnManipulationStarting(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnManipulationInertiaStarting(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnManipulationInertiaStarting, WINRT_WRAP(void), Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const&);
            this->shim().OnManipulationInertiaStarting(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnManipulationStarted(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnManipulationStarted, WINRT_WRAP(void), Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const&);
            this->shim().OnManipulationStarted(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnManipulationDelta(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnManipulationDelta, WINRT_WRAP(void), Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const&);
            this->shim().OnManipulationDelta(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnManipulationCompleted(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnManipulationCompleted, WINRT_WRAP(void), Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const&);
            this->shim().OnManipulationCompleted(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnKeyUp(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnKeyUp, WINRT_WRAP(void), Windows::UI::Xaml::Input::KeyRoutedEventArgs const&);
            this->shim().OnKeyUp(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnKeyDown(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnKeyDown, WINRT_WRAP(void), Windows::UI::Xaml::Input::KeyRoutedEventArgs const&);
            this->shim().OnKeyDown(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnGotFocus(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnGotFocus, WINRT_WRAP(void), Windows::UI::Xaml::RoutedEventArgs const&);
            this->shim().OnGotFocus(*reinterpret_cast<Windows::UI::Xaml::RoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnLostFocus(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnLostFocus, WINRT_WRAP(void), Windows::UI::Xaml::RoutedEventArgs const&);
            this->shim().OnLostFocus(*reinterpret_cast<Windows::UI::Xaml::RoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnDragEnter(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnDragEnter, WINRT_WRAP(void), Windows::UI::Xaml::DragEventArgs const&);
            this->shim().OnDragEnter(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnDragLeave(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnDragLeave, WINRT_WRAP(void), Windows::UI::Xaml::DragEventArgs const&);
            this->shim().OnDragLeave(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnDragOver(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnDragOver, WINRT_WRAP(void), Windows::UI::Xaml::DragEventArgs const&);
            this->shim().OnDragOver(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnDrop(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnDrop, WINRT_WRAP(void), Windows::UI::Xaml::DragEventArgs const&);
            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 WINRT_CALL OnPreviewKeyDown(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPreviewKeyDown, WINRT_WRAP(void), Windows::UI::Xaml::Input::KeyRoutedEventArgs const&);
            this->shim().OnPreviewKeyDown(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnPreviewKeyUp(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnPreviewKeyUp, WINRT_WRAP(void), Windows::UI::Xaml::Input::KeyRoutedEventArgs const&);
            this->shim().OnPreviewKeyUp(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnCharacterReceived(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnCharacterReceived, WINRT_WRAP(void), Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const&);
            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 WINRT_CALL get_DefaultStyleKey(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultStyleKey, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().DefaultStyleKey());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DefaultStyleKey(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultStyleKey, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().DefaultStyleKey(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetTemplateChild(void* childName, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetTemplateChild, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), hstring const&);
            *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 WINRT_CALL get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTabStopProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTabStopProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTabStopProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TabIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TabIndexProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TabIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TabNavigationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TabNavigationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TabNavigationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalContentAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalContentAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalContentAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalContentAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThicknessProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DefaultStyleKeyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultStyleKeyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultStyleKeyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FocusStateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusStateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_UseSystemFocusVisualsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UseSystemFocusVisualsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UseSystemFocusVisualsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTemplateFocusTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTemplateFocusTargetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTemplateFocusTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsTemplateFocusTarget(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsTemplateFocusTarget, WINRT_WRAP(bool), Windows::UI::Xaml::FrameworkElement const&);
            *result = detach_from<bool>(this->shim().GetIsTemplateFocusTarget(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsTemplateFocusTarget(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsTemplateFocusTarget, WINRT_WRAP(void), Windows::UI::Xaml::FrameworkElement const&, bool);
            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 WINRT_CALL get_IsFocusEngagementEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFocusEngagementEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFocusEngagementEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFocusEngagedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFocusEngagedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFocusEngagedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RequiresPointerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RequiresPointerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RequiresPointerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusLeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusLeftProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusRightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusRightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusRightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusUpProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusUpProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusUpProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusDownProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusDownProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusDownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ElementSoundModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ElementSoundModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DefaultStyleResourceUriProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultStyleResourceUriProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultStyleResourceUriProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTemplateKeyTipTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTemplateKeyTipTargetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTemplateKeyTipTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsTemplateKeyTipTarget(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsTemplateKeyTipTarget, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsTemplateKeyTipTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsTemplateKeyTipTarget(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsTemplateKeyTipTarget, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            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 WINRT_CALL get_BackgroundSizingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadiusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_TargetType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TargetType, WINRT_WRAP(Windows::UI::Xaml::Interop::TypeName));
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().TargetType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TargetType(struct struct_Windows_UI_Xaml_Interop_TypeName value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TargetType, WINRT_WRAP(void), Windows::UI::Xaml::Interop::TypeName const&);
            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 WINRT_CALL SelectTemplate(void* item, void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate), Windows::Foundation::IInspectable const&, Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SelectTemplateForItem(void* item, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate), Windows::Foundation::IInspectable const&);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::DataTemplateSelector), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL SelectTemplateCore(void* item, void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectTemplateCore, WINRT_WRAP(Windows::UI::Xaml::DataTemplate), Windows::Foundation::IInspectable const&, Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SelectTemplateForItemCore(void* item, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectTemplateCore, WINRT_WRAP(Windows::UI::Xaml::DataTemplate), Windows::Foundation::IInspectable const&);
            *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 WINRT_CALL get_OldDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldDate, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NewDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewDate, WINRT_WRAP(Windows::Foundation::DateTime));
            *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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarIdentifier(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifier, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarIdentifier(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifier, WINRT_WRAP(void), hstring const&);
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Date(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Date, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Date(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Date, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().Date(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().DayVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayVisible, WINRT_WRAP(void), bool);
            this->shim().DayVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().MonthVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MonthVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthVisible, WINRT_WRAP(void), bool);
            this->shim().MonthVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_YearVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().YearVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_YearVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearVisible, WINRT_WRAP(void), bool);
            this->shim().YearVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DayFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayFormat, WINRT_WRAP(void), hstring const&);
            this->shim().DayFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().MonthFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MonthFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthFormat, WINRT_WRAP(void), hstring const&);
            this->shim().MonthFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_YearFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().YearFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_YearFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearFormat, WINRT_WRAP(void), hstring const&);
            this->shim().YearFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinYear(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinYear, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinYear(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinYear, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().MinYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxYear(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxYear, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxYear(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxYear, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().MaxYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_DateChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const&);
            *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 WINRT_CALL remove_DateChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DateChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::LightDismissOverlayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::LightDismissOverlayMode const&);
            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 WINRT_CALL get_SelectedDate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedDate, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::DateTime>));
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().SelectedDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedDate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedDate, WINRT_WRAP(void), Windows::Foundation::IReference<Windows::Foundation::DateTime> const&);
            this->shim().SelectedDate(*reinterpret_cast<Windows::Foundation::IReference<Windows::Foundation::DateTime> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SelectedDateChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedDateChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePicker, Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> const&);
            *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 WINRT_CALL remove_SelectedDateChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectedDateChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::DatePicker), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::DatePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_CalendarIdentifier(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifier, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CalendarIdentifier(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifier, WINRT_WRAP(void), hstring const&);
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Date(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Date, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Date(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Date, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().Date(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().DayVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayVisible, WINRT_WRAP(void), bool);
            this->shim().DayVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().MonthVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MonthVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthVisible, WINRT_WRAP(void), bool);
            this->shim().MonthVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_YearVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().YearVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_YearVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearVisible, WINRT_WRAP(void), bool);
            this->shim().YearVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinYear(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinYear, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinYear(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinYear, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().MinYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxYear(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxYear, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxYear(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxYear, WINRT_WRAP(void), Windows::Foundation::DateTime const&);
            this->shim().MaxYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_DatePicked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DatePicked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePickerFlyout, Windows::UI::Xaml::Controls::DatePickedEventArgs> const&);
            *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 WINRT_CALL remove_DatePicked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DatePicked, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DatePicked(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ShowAtAsync(void* target, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAtAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::DateTime>>), Windows::UI::Xaml::FrameworkElement const);
            *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 WINRT_CALL get_DayFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DayFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DayFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayFormat, WINRT_WRAP(void), hstring const&);
            this->shim().DayFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().MonthFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MonthFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthFormat, WINRT_WRAP(void), hstring const&);
            this->shim().MonthFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_YearFormat(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearFormat, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().YearFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_YearFormat(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearFormat, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL get_PrimaryText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PrimaryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PrimaryText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryText, WINRT_WRAP(void), hstring const&);
            this->shim().PrimaryText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().SecondaryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SecondaryText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryText, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL get_PrimaryTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrimaryTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SecondaryTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SecondaryTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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::IDatePickerFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>
{
    int32_t WINRT_CALL get_CalendarIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifierProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_YearVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinYearProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinYearProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxYearProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxYearProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DayFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_YearFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_OldDate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldDate, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::DateTime>));
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NewDate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewDate, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::DateTime>));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CalendarIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CalendarIdentifierProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_YearVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DayFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DayFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MonthFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MonthFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_YearFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(YearFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinYearProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinYearProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxYearProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxYearProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectedDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedDateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_OldDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldDate, WINRT_WRAP(Windows::Foundation::DateTime));
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NewDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewDate, WINRT_WRAP(Windows::Foundation::DateTime));
            *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 WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DropResult(Windows::ApplicationModel::DataTransfer::DataPackageOperation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DropResult, WINRT_WRAP(Windows::ApplicationModel::DataTransfer::DataPackageOperation));
            *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 WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Data(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Data, WINRT_WRAP(Windows::ApplicationModel::DataTransfer::DataPackage));
            *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 WINRT_CALL CreateInstance(void* owner, void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer), Windows::UI::Xaml::Controls::DropDownButton const&, Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *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), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::DropDownButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::DropDownButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Action(Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Action, WINRT_WRAP(Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction));
            *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 WINRT_CALL get_UseTouchAnimationsForAllNavigation(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UseTouchAnimationsForAllNavigation, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().UseTouchAnimationsForAllNavigation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_UseTouchAnimationsForAllNavigation(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UseTouchAnimationsForAllNavigation, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::FlipView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::FlipView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::FlipViewItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::FlipViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_UseTouchAnimationsForAllNavigationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UseTouchAnimationsForAllNavigationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FlyoutPresenterStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FlyoutPresenterStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().FlyoutPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FlyoutPresenterStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FlyoutPresenterStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Flyout), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Flyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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::IFlyoutPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>
{
    int32_t WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::FlyoutPresenter), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::FlyoutPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_innerInterface);
            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 WINRT_CALL get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FlyoutPresenterStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FlyoutPresenterStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_Glyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Glyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Glyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Glyph, WINRT_WRAP(void), hstring const&);
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(void), double);
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            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 WINRT_CALL get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_MirroredWhenRightToLeft(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MirroredWhenRightToLeft, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().MirroredWhenRightToLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MirroredWhenRightToLeft(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MirroredWhenRightToLeft, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::FontIcon), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::FontIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Glyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Glyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Glyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Glyph, WINRT_WRAP(void), hstring const&);
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(void), double);
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(void), bool);
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MirroredWhenRightToLeft(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MirroredWhenRightToLeft, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().MirroredWhenRightToLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MirroredWhenRightToLeft(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MirroredWhenRightToLeft, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::FontIconSource), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::FontIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_GlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MirroredWhenRightToLeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MirroredWhenRightToLeftProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_GlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_MirroredWhenRightToLeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MirroredWhenRightToLeftProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CacheSize(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheSize, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().CacheSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CacheSize(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheSize, WINRT_WRAP(void), int32_t);
            this->shim().CacheSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanGoBack(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanGoBack, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanGoBack());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanGoForward(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanGoForward, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanGoForward());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CurrentSourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CurrentSourcePageType, WINRT_WRAP(Windows::UI::Xaml::Interop::TypeName));
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().CurrentSourcePageType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourcePageType, WINRT_WRAP(Windows::UI::Xaml::Interop::TypeName));
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().SourcePageType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourcePageType, WINRT_WRAP(void), Windows::UI::Xaml::Interop::TypeName const&);
            this->shim().SourcePageType(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackStackDepth(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackStackDepth, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().BackStackDepth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Navigated(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Navigated, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Navigation::NavigatedEventHandler const&);
            *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 WINRT_CALL remove_Navigated(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Navigated, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Navigated(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Navigating(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Navigating, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const&);
            *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 WINRT_CALL remove_Navigating(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Navigating, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Navigating(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_NavigationFailed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigationFailed, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const&);
            *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 WINRT_CALL remove_NavigationFailed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(NavigationFailed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().NavigationFailed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_NavigationStopped(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigationStopped, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const&);
            *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 WINRT_CALL remove_NavigationStopped(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(NavigationStopped, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().NavigationStopped(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL GoBack() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GoBack, WINRT_WRAP(void));
            this->shim().GoBack();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GoForward() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GoForward, WINRT_WRAP(void));
            this->shim().GoForward();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Navigate, WINRT_WRAP(bool), Windows::UI::Xaml::Interop::TypeName const&, Windows::Foundation::IInspectable const&);
            *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 WINRT_CALL GetNavigationState(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetNavigationState, WINRT_WRAP(hstring));
            *result = detach_from<hstring>(this->shim().GetNavigationState());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetNavigationState(void* navigationState) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetNavigationState, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL get_BackStack(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackStack, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>>(this->shim().BackStack());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ForwardStack(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForwardStack, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>>(this->shim().ForwardStack());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL 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());
            WINRT_ASSERT_DECLARATION(Navigate, WINRT_WRAP(bool), Windows::UI::Xaml::Interop::TypeName const&, Windows::Foundation::IInspectable const&, Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const&);
            *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 WINRT_CALL GoBack(void* transitionInfoOverride) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GoBack, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const&);
            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 WINRT_CALL SetNavigationStateWithNavigationControl(void* navigationState, bool suppressNavigate) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetNavigationState, WINRT_WRAP(void), hstring const&, bool);
            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 WINRT_CALL get_IsNavigationStackEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsNavigationStackEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsNavigationStackEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsNavigationStackEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsNavigationStackEnabled, WINRT_WRAP(void), bool);
            this->shim().IsNavigationStackEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL 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());
            WINRT_ASSERT_DECLARATION(NavigateToType, WINRT_WRAP(bool), Windows::UI::Xaml::Interop::TypeName const&, Windows::Foundation::IInspectable const&, Windows::UI::Xaml::Navigation::FrameNavigationOptions const&);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Frame), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Frame>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_CacheSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CacheSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanGoBackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanGoBackProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoBackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanGoForwardProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanGoForwardProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoForwardProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CurrentSourcePageTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CurrentSourcePageTypeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CurrentSourcePageTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SourcePageTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourcePageTypeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourcePageTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackStackDepthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackStackDepthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BackStackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackStackProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackStackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ForwardStackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForwardStackProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsNavigationStackEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsNavigationStackEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_RowDefinitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RowDefinitions, WINRT_WRAP(Windows::UI::Xaml::Controls::RowDefinitionCollection));
            *value = detach_from<Windows::UI::Xaml::Controls::RowDefinitionCollection>(this->shim().RowDefinitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColumnDefinitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColumnDefinitions, WINRT_WRAP(Windows::UI::Xaml::Controls::ColumnDefinitionCollection));
            *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 WINRT_CALL get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(Windows::UI::Xaml::CornerRadius));
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(void), Windows::UI::Xaml::CornerRadius const&);
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            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 WINRT_CALL get_RowSpacing(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RowSpacing, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().RowSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_RowSpacing(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RowSpacing, WINRT_WRAP(void), double);
            this->shim().RowSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColumnSpacing(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColumnSpacing, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ColumnSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ColumnSpacing(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColumnSpacing, WINRT_WRAP(void), double);
            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 WINRT_CALL get_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(Windows::UI::Xaml::Controls::BackgroundSizing));
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(void), Windows::UI::Xaml::Controls::BackgroundSizing const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Grid), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Grid>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_RowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetRow(void* element, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetRow, WINRT_WRAP(int32_t), Windows::UI::Xaml::FrameworkElement const&);
            *result = detach_from<int32_t>(this->shim().GetRow(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetRow(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetRow, WINRT_WRAP(void), Windows::UI::Xaml::FrameworkElement const&, int32_t);
            this->shim().SetRow(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColumnProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColumnProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetColumn(void* element, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetColumn, WINRT_WRAP(int32_t), Windows::UI::Xaml::FrameworkElement const&);
            *result = detach_from<int32_t>(this->shim().GetColumn(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetColumn(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetColumn, WINRT_WRAP(void), Windows::UI::Xaml::FrameworkElement const&, int32_t);
            this->shim().SetColumn(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RowSpanProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RowSpanProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetRowSpan(void* element, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetRowSpan, WINRT_WRAP(int32_t), Windows::UI::Xaml::FrameworkElement const&);
            *result = detach_from<int32_t>(this->shim().GetRowSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetRowSpan(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetRowSpan, WINRT_WRAP(void), Windows::UI::Xaml::FrameworkElement const&, int32_t);
            this->shim().SetRowSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColumnSpanProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColumnSpanProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetColumnSpan(void* element, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetColumnSpan, WINRT_WRAP(int32_t), Windows::UI::Xaml::FrameworkElement const&);
            *result = detach_from<int32_t>(this->shim().GetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetColumnSpan(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetColumnSpan, WINRT_WRAP(void), Windows::UI::Xaml::FrameworkElement const&, int32_t);
            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 WINRT_CALL get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThicknessProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadiusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_RowSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RowSpacingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColumnSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColumnSpacingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BackgroundSizingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::GridView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::GridView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::GridViewHeaderItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::GridViewHeaderItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::GridViewItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::GridViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::GroupItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::GroupItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Panel(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Panel, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemsPanelTemplate));
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsPanelTemplate>(this->shim().Panel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Panel(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Panel, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ItemsPanelTemplate const&);
            this->shim().Panel(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsPanelTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().ContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().ContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContainerStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerStyleSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::StyleSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContainerStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerStyleSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::StyleSelector const&);
            this->shim().ContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::DataTemplateSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().HeaderTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            this->shim().HeaderTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HidesIfEmpty(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HidesIfEmpty, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().HidesIfEmpty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HidesIfEmpty(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HidesIfEmpty, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_HeaderContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderContainerStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().HeaderContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderContainerStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::GroupStyle), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::GroupStyle>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL SelectGroupStyle(void* group, uint32_t level, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectGroupStyle, WINRT_WRAP(Windows::UI::Xaml::Controls::GroupStyle), Windows::Foundation::IInspectable const&, uint32_t);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::GroupStyleSelector), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::GroupStyleSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL SelectGroupStyleCore(void* group, uint32_t level, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectGroupStyleCore, WINRT_WRAP(Windows::UI::Xaml::Controls::GroupStyle), Windows::Foundation::IInspectable const&, uint32_t);
            *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 WINRT_CALL get_PlacementTarget(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementTarget, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PlacementTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlacementTarget(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementTarget, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().PlacementTarget(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlacementAlignment(Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementAlignment, WINRT_WRAP(Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment));
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment>(this->shim().PlacementAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlacementAlignment(Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementAlignment, WINRT_WRAP(void), Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment const&);
            this->shim().PlacementAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOpen, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AreCandidatesEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreCandidatesEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AreCandidatesEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AreCandidatesEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreCandidatesEnabled, WINRT_WRAP(void), bool);
            this->shim().AreCandidatesEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Opened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const&);
            *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 WINRT_CALL remove_Opened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Closed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const&);
            *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 WINRT_CALL remove_Closed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL TryClose(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TryClose, WINRT_WRAP(bool));
            *result = detach_from<bool>(this->shim().TryClose());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL TryOpen(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TryOpen, WINRT_WRAP(bool));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::HandwritingView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_PlacementTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementTargetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlacementAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOpenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AreCandidatesEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreCandidatesEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DefaultSectionIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultSectionIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().DefaultSectionIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DefaultSectionIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultSectionIndex, WINRT_WRAP(void), int32_t);
            this->shim().DefaultSectionIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Sections(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Sections, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().Sections());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SectionsInView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SectionsInView, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().SectionsInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SectionHeaders(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SectionHeaders, WINRT_WRAP(Windows::Foundation::Collections::IObservableVector<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::Foundation::IInspectable>>(this->shim().SectionHeaders());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SectionHeaderClick(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SectionHeaderClick, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const&);
            *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 WINRT_CALL remove_SectionHeaderClick(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SectionHeaderClick, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SectionHeaderClick(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_SectionsInViewChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SectionsInViewChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const&);
            *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 WINRT_CALL remove_SectionsInViewChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SectionsInViewChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SectionsInViewChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ScrollToSection(void* section) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollToSection, WINRT_WRAP(void), Windows::UI::Xaml::Controls::HubSection const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Hub), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Hub>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHeaderInteractive(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHeaderInteractive, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsHeaderInteractive());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsHeaderInteractive(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHeaderInteractive, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::HubSection), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::HubSection>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Section(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Section, WINRT_WRAP(Windows::UI::Xaml::Controls::HubSection));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHeaderInteractiveProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHeaderInteractiveProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DefaultSectionIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultSectionIndexProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultSectionIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SemanticZoomOwnerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SemanticZoomOwnerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SemanticZoomOwnerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsActiveViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsActiveViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomedInViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomedInViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_NavigateUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigateUri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().NavigateUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_NavigateUri(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigateUri, WINRT_WRAP(void), Windows::Foundation::Uri const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::HyperlinkButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::HyperlinkButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_NavigateUriProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigateUriProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            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 WINRT_CALL get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            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 WINRT_CALL get_IconSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSource, WINRT_WRAP(Windows::UI::Xaml::Controls::IconSource));
            *value = detach_from<Windows::UI::Xaml::Controls::IconSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IconSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSource, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IconSource const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::IconSourceElement), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::IconSourceElement>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IconSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().Source(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(Windows::UI::Xaml::Media::Stretch));
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(void), Windows::UI::Xaml::Media::Stretch const&);
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NineGrid(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NineGrid, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().NineGrid());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_NineGrid(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NineGrid, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().NineGrid(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlayToSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlayToSource, WINRT_WRAP(Windows::Media::PlayTo::PlayToSource));
            *value = detach_from<Windows::Media::PlayTo::PlayToSource>(this->shim().PlayToSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ImageFailed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ImageFailed, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::ExceptionRoutedEventHandler const&);
            *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 WINRT_CALL remove_ImageFailed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ImageFailed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ImageFailed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ImageOpened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ImageOpened, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_ImageOpened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ImageOpened, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL GetAsCastingSource(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAsCastingSource, WINRT_WRAP(Windows::Media::Casting::CastingSource));
            *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 WINRT_CALL GetAlphaMask(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlphaMask, WINRT_WRAP(Windows::UI::Composition::CompositionBrush));
            *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 WINRT_CALL get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NineGridProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NineGridProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NineGridProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlayToSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlayToSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_InkPresenter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InkPresenter, WINRT_WRAP(Windows::UI::Input::Inking::InkPresenter));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkCanvas), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkCanvas>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_InitialControls(Windows::UI::Xaml::Controls::InkToolbarInitialControls* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InitialControls, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarInitialControls));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarInitialControls>(this->shim().InitialControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_InitialControls(Windows::UI::Xaml::Controls::InkToolbarInitialControls value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InitialControls, WINRT_WRAP(void), Windows::UI::Xaml::Controls::InkToolbarInitialControls const&);
            this->shim().InitialControls(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarInitialControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Children(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Children, WINRT_WRAP(Windows::UI::Xaml::DependencyObjectCollection));
            *value = detach_from<Windows::UI::Xaml::DependencyObjectCollection>(this->shim().Children());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ActiveTool(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ActiveTool, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarToolButton));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarToolButton>(this->shim().ActiveTool());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ActiveTool(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ActiveTool, WINRT_WRAP(void), Windows::UI::Xaml::Controls::InkToolbarToolButton const&);
            this->shim().ActiveTool(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarToolButton const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InkDrawingAttributes(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InkDrawingAttributes, WINRT_WRAP(Windows::UI::Input::Inking::InkDrawingAttributes));
            *value = detach_from<Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().InkDrawingAttributes());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsRulerButtonChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRulerButtonChecked, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsRulerButtonChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsRulerButtonChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRulerButtonChecked, WINRT_WRAP(void), bool);
            this->shim().IsRulerButtonChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TargetInkCanvas(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TargetInkCanvas, WINRT_WRAP(Windows::UI::Xaml::Controls::InkCanvas));
            *value = detach_from<Windows::UI::Xaml::Controls::InkCanvas>(this->shim().TargetInkCanvas());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TargetInkCanvas(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TargetInkCanvas, WINRT_WRAP(void), Windows::UI::Xaml::Controls::InkCanvas const&);
            this->shim().TargetInkCanvas(*reinterpret_cast<Windows::UI::Xaml::Controls::InkCanvas const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ActiveToolChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ActiveToolChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_ActiveToolChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ActiveToolChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ActiveToolChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_InkDrawingAttributesChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InkDrawingAttributesChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_InkDrawingAttributesChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(InkDrawingAttributesChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().InkDrawingAttributesChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_EraseAllClicked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(EraseAllClicked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_EraseAllClicked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(EraseAllClicked, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().EraseAllClicked(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_IsRulerButtonCheckedChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRulerButtonCheckedChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_IsRulerButtonCheckedChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(IsRulerButtonCheckedChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().IsRulerButtonCheckedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL GetToolButton(Windows::UI::Xaml::Controls::InkToolbarTool tool, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetToolButton, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarToolButton), Windows::UI::Xaml::Controls::InkToolbarTool const&);
            *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 WINRT_CALL GetToggleButton(Windows::UI::Xaml::Controls::InkToolbarToggle tool, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetToggleButton, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarToggleButton), Windows::UI::Xaml::Controls::InkToolbarToggle const&);
            *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 WINRT_CALL get_IsStencilButtonChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStencilButtonChecked, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsStencilButtonChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsStencilButtonChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStencilButtonChecked, WINRT_WRAP(void), bool);
            this->shim().IsStencilButtonChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ButtonFlyoutPlacement(Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ButtonFlyoutPlacement, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement>(this->shim().ButtonFlyoutPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ButtonFlyoutPlacement(Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ButtonFlyoutPlacement, WINRT_WRAP(void), Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement const&);
            this->shim().ButtonFlyoutPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_IsStencilButtonCheckedChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStencilButtonCheckedChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const&);
            *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 WINRT_CALL remove_IsStencilButtonCheckedChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(IsStencilButtonCheckedChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().IsStencilButtonCheckedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL GetMenuButton(Windows::UI::Xaml::Controls::InkToolbarMenuKind menu, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetMenuButton, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarMenuButton), Windows::UI::Xaml::Controls::InkToolbarMenuKind const&);
            *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::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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInkDrawingAttributes(void* brush, double strokeWidth, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CreateInkDrawingAttributes, WINRT_WRAP(Windows::UI::Input::Inking::InkDrawingAttributes), Windows::UI::Xaml::Media::Brush const&, double);
            *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 WINRT_CALL get_CustomPen(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CustomPen, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarCustomPen));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPen>(this->shim().CustomPen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CustomPen(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CustomPen, WINRT_WRAP(void), Windows::UI::Xaml::Controls::InkToolbarCustomPen const&);
            this->shim().CustomPen(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarCustomPen const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ConfigurationContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfigurationContent, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ConfigurationContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ConfigurationContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfigurationContent, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarCustomPenButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPenButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_CustomPenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CustomPenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CustomPenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ConfigurationContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfigurationContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarCustomPen), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPen>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInkDrawingAttributesCore(void* brush, double strokeWidth, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CreateInkDrawingAttributesCore, WINRT_WRAP(Windows::UI::Input::Inking::InkDrawingAttributes), Windows::UI::Xaml::Media::Brush const&, double);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ConfigurationContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfigurationContent, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ConfigurationContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ConfigurationContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfigurationContent, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarCustomToolButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomToolButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ConfigurationContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfigurationContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsClearAllVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsClearAllVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsClearAllVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsClearAllVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsClearAllVisible, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarEraserButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarEraserButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IsClearAllVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsClearAllVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbar), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Kind(Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Kind, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind>(this->shim().Kind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Kind(Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Kind, WINRT_WRAP(void), Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind const&);
            this->shim().Kind(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsChecked, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsChecked, WINRT_WRAP(void), bool);
            this->shim().IsChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Checked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Checked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_Checked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Checked, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Checked(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Unchecked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Unchecked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_Unchecked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Unchecked, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarFlyoutItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_KindProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KindProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCheckedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCheckedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarHighlighterButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarHighlighterButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_StencilButton(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StencilButton, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarStencilButton));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilButton>(this->shim().StencilButton());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StencilKind(Windows::UI::Xaml::Controls::InkToolbarStencilKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StencilKind, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarStencilKind));
            *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 WINRT_CALL get_MenuKind(Windows::UI::Xaml::Controls::InkToolbarMenuKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuKind, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarMenuKind));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarMenuKind>(this->shim().MenuKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsExtensionGlyphShown(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExtensionGlyphShown, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsExtensionGlyphShown());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsExtensionGlyphShown(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExtensionGlyphShown, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_IsExtensionGlyphShownProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExtensionGlyphShownProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Palette(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Palette, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush>>(this->shim().Palette());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Palette(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Palette, WINRT_WRAP(void), Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush> const&);
            this->shim().Palette(*reinterpret_cast<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinStrokeWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinStrokeWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MinStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinStrokeWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinStrokeWidth, WINRT_WRAP(void), double);
            this->shim().MinStrokeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxStrokeWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxStrokeWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MaxStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxStrokeWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxStrokeWidth, WINRT_WRAP(void), double);
            this->shim().MaxStrokeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedBrushIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedBrushIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectedBrushIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedBrushIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedBrushIndex, WINRT_WRAP(void), int32_t);
            this->shim().SelectedBrushIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedStrokeWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedStrokeWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().SelectedStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedStrokeWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedStrokeWidth, WINRT_WRAP(void), double);
            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 WINRT_CALL get_PaletteProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaletteProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaletteProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinStrokeWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinStrokeWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinStrokeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxStrokeWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxStrokeWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxStrokeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedBrushIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedBrushIndexProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBrushIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedStrokeWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedStrokeWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_PenButton(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PenButton, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarPenButton));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_PenButtonProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PenButtonProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarPencilButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarPencilButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Ruler(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Ruler, WINRT_WRAP(Windows::UI::Input::Inking::InkPresenterRuler));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarRulerButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarRulerButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_RulerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RulerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_InitialControlsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InitialControlsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialControlsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ChildrenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChildrenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildrenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ActiveToolProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ActiveToolProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ActiveToolProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InkDrawingAttributesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InkDrawingAttributesProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InkDrawingAttributesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsRulerButtonCheckedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRulerButtonCheckedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRulerButtonCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TargetInkCanvasProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TargetInkCanvasProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsStencilButtonCheckedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStencilButtonCheckedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStencilButtonCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ButtonFlyoutPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ButtonFlyoutPlacementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ButtonFlyoutPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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::IInkToolbarStencilButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButton>
{
    int32_t WINRT_CALL get_Ruler(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Ruler, WINRT_WRAP(Windows::UI::Input::Inking::InkPresenterRuler));
            *value = detach_from<Windows::UI::Input::Inking::InkPresenterRuler>(this->shim().Ruler());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Protractor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Protractor, WINRT_WRAP(Windows::UI::Input::Inking::InkPresenterProtractor));
            *value = detach_from<Windows::UI::Input::Inking::InkPresenterProtractor>(this->shim().Protractor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedStencil(Windows::UI::Xaml::Controls::InkToolbarStencilKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedStencil, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarStencilKind));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilKind>(this->shim().SelectedStencil());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedStencil(Windows::UI::Xaml::Controls::InkToolbarStencilKind value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedStencil, WINRT_WRAP(void), Windows::UI::Xaml::Controls::InkToolbarStencilKind const&);
            this->shim().SelectedStencil(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarStencilKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsRulerItemVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRulerItemVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsRulerItemVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsRulerItemVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRulerItemVisible, WINRT_WRAP(void), bool);
            this->shim().IsRulerItemVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsProtractorItemVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsProtractorItemVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsProtractorItemVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsProtractorItemVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsProtractorItemVisible, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarStencilButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_RulerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RulerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RulerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProtractorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProtractorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProtractorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedStencilProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedStencilProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedStencilProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsRulerItemVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRulerItemVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRulerItemVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsProtractorItemVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsProtractorItemVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ToggleKind(Windows::UI::Xaml::Controls::InkToolbarToggle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ToggleKind, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarToggle));
            *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 WINRT_CALL get_ToolKind(Windows::UI::Xaml::Controls::InkToolbarTool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ToolKind, WINRT_WRAP(Windows::UI::Xaml::Controls::InkToolbarTool));
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarTool>(this->shim().ToolKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsExtensionGlyphShown(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExtensionGlyphShown, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsExtensionGlyphShown());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsExtensionGlyphShown(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExtensionGlyphShown, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_IsExtensionGlyphShownProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExtensionGlyphShownProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL GetInsertionIndexes(Windows::Foundation::Point position, int32_t* first, int32_t* second) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetInsertionIndexes, WINRT_WRAP(void), Windows::Foundation::Point const&, int32_t&, int32_t&);
            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 WINRT_CALL get_ClickedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClickedItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *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 WINRT_CALL add_ItemsChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const&);
            *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 WINRT_CALL remove_ItemsChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ItemsChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ItemsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ItemFromContainer(void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemFromContainer, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL ContainerFromItem(void* item, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerFromItem, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), Windows::Foundation::IInspectable const&);
            *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 WINRT_CALL IndexFromContainer(void* container, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IndexFromContainer, WINRT_WRAP(int32_t), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<int32_t>(this->shim().IndexFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ContainerFromIndex(int32_t index, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerFromIndex, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), int32_t);
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromIndex(index));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetItemContainerGeneratorForPanel(void* panel, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetItemContainerGeneratorForPanel, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemContainerGenerator), Windows::UI::Xaml::Controls::Panel const&);
            *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 WINRT_CALL StartAt(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, Windows::UI::Xaml::Controls::Primitives::GeneratorDirection direction, bool allowStartAtRealizedItem) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StartAt, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const&, Windows::UI::Xaml::Controls::Primitives::GeneratorDirection const&, bool);
            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 WINRT_CALL Stop() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stop, WINRT_WRAP(void));
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GenerateNext(bool* isNewlyRealized, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GenerateNext, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), bool&);
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GenerateNext(*isNewlyRealized));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL PrepareItemContainer(void* container) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrepareItemContainer, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            this->shim().PrepareItemContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL RemoveAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RemoveAll, WINRT_WRAP(void));
            this->shim().RemoveAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Remove(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t count) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Remove, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const&, int32_t);
            this->shim().Remove(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), count);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GeneratorPositionFromIndex(int32_t itemIndex, struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GeneratorPositionFromIndex, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition), int32_t);
            *result = detach_from<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition>(this->shim().GeneratorPositionFromIndex(itemIndex));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL IndexFromGeneratorPosition(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IndexFromGeneratorPosition, WINRT_WRAP(int32_t), Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const&);
            *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 WINRT_CALL Recycle(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t count) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Recycle, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const&, int32_t);
            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 WINRT_CALL ItemFromContainer(void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemFromContainer, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL ContainerFromItem(void* item, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerFromItem, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), Windows::Foundation::IInspectable const&);
            *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 WINRT_CALL IndexFromContainer(void* container, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IndexFromContainer, WINRT_WRAP(int32_t), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<int32_t>(this->shim().IndexFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ContainerFromIndex(int32_t index, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerFromIndex, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), int32_t);
            *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 WINRT_CALL get_ItemsSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSource, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemsSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSource, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemCollection));
            *value = detach_from<Windows::UI::Xaml::Controls::ItemCollection>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().ItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::DataTemplateSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            this->shim().ItemTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemsPanel(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsPanel, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemsPanelTemplate));
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsPanelTemplate>(this->shim().ItemsPanel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemsPanel(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsPanel, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ItemsPanelTemplate const&);
            this->shim().ItemsPanel(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsPanelTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayMemberPath(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMemberPath, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DisplayMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisplayMemberPath(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMemberPath, WINRT_WRAP(void), hstring const&);
            this->shim().DisplayMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().ItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().ItemContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyleSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::StyleSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemContainerStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyleSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::StyleSelector const&);
            this->shim().ItemContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerGenerator(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerGenerator, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemContainerGenerator));
            *value = detach_from<Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().ItemContainerGenerator());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ItemContainerTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemContainerTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            this->shim().ItemContainerTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GroupStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupStyle, WINRT_WRAP(Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::GroupStyle>));
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::GroupStyle>>(this->shim().GroupStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GroupStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupStyleSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::GroupStyleSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::GroupStyleSelector>(this->shim().GroupStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GroupStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupStyleSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::GroupStyleSelector const&);
            this->shim().GroupStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsGrouping(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGrouping, WINRT_WRAP(bool));
            *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 WINRT_CALL get_ItemsPanelRoot(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsPanelRoot, WINRT_WRAP(Windows::UI::Xaml::Controls::Panel));
            *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 WINRT_CALL GroupHeaderContainerFromItemContainer(void* itemContainer, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderContainerFromItemContainer, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemsControl), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL IsItemItsOwnContainerOverride(void* item, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsItemItsOwnContainerOverride, WINRT_WRAP(bool), Windows::Foundation::IInspectable const&);
            *result = detach_from<bool>(this->shim().IsItemItsOwnContainerOverride(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetContainerForItemOverride(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetContainerForItemOverride, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *result = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GetContainerForItemOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ClearContainerForItemOverride(void* element, void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClearContainerForItemOverride, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL PrepareContainerForItemOverride(void* element, void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrepareContainerForItemOverride, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL OnItemsChanged(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnItemsChanged, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().OnItemsChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnItemContainerStyleChanged(void* oldItemContainerStyle, void* newItemContainerStyle) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnItemContainerStyleChanged, WINRT_WRAP(void), Windows::UI::Xaml::Style const&, Windows::UI::Xaml::Style const&);
            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 WINRT_CALL OnItemContainerStyleSelectorChanged(void* oldItemContainerStyleSelector, void* newItemContainerStyleSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnItemContainerStyleSelectorChanged, WINRT_WRAP(void), Windows::UI::Xaml::Controls::StyleSelector const&, Windows::UI::Xaml::Controls::StyleSelector const&);
            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 WINRT_CALL OnItemTemplateChanged(void* oldItemTemplate, void* newItemTemplate) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnItemTemplateChanged, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&, Windows::UI::Xaml::DataTemplate const&);
            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 WINRT_CALL OnItemTemplateSelectorChanged(void* oldItemTemplateSelector, void* newItemTemplateSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnItemTemplateSelectorChanged, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&, Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            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 WINRT_CALL OnGroupStyleSelectorChanged(void* oldGroupStyleSelector, void* newGroupStyleSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnGroupStyleSelectorChanged, WINRT_WRAP(void), Windows::UI::Xaml::Controls::GroupStyleSelector const&, Windows::UI::Xaml::Controls::GroupStyleSelector const&);
            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 WINRT_CALL get_ItemsSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemsPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsPanelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayMemberPathProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMemberPathProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerStyleSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyleSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GroupStyleSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupStyleSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsGroupingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroupingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetItemsOwner(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetItemsOwner, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemsControl), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL ItemsControlFromItemContainer(void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsControlFromItemContainer, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemsControl), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL get_AddedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AddedItems, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().AddedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RemovedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RemovedItems, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().HeaderTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            this->shim().HeaderTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            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 WINRT_CALL get_Footer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Footer, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Footer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Footer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Footer, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Footer(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().FooterTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FooterTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().FooterTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().FooterTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FooterTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_FooterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_GroupPadding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupPadding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().GroupPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GroupPadding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupPadding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().GroupPadding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstCacheIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstCacheIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().FirstCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstVisibleIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstVisibleIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().FirstVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LastVisibleIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LastVisibleIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().LastVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LastCacheIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LastCacheIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().LastCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ScrollingDirection(Windows::UI::Xaml::Controls::PanelScrollingDirection* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollingDirection, WINRT_WRAP(Windows::UI::Xaml::Controls::PanelScrollingDirection));
            *value = detach_from<Windows::UI::Xaml::Controls::PanelScrollingDirection>(this->shim().ScrollingDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderPlacement, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>(this->shim().GroupHeaderPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderPlacement, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const&);
            this->shim().GroupHeaderPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemsUpdatingScrollMode(Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsUpdatingScrollMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode));
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode>(this->shim().ItemsUpdatingScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemsUpdatingScrollMode(Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsUpdatingScrollMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode const&);
            this->shim().ItemsUpdatingScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CacheLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheLength, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().CacheLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CacheLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheLength, WINRT_WRAP(void), double);
            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 WINRT_CALL get_AreStickyGroupHeadersEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreStickyGroupHeadersEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AreStickyGroupHeadersEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AreStickyGroupHeadersEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreStickyGroupHeadersEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_GroupPaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupPaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GroupHeaderPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderPlacementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupHeaderPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CacheLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_AreStickyGroupHeadersEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreStickyGroupHeadersEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_GroupPadding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupPadding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().GroupPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GroupPadding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupPadding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().GroupPadding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaximumRowsOrColumns(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumns, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaximumRowsOrColumns(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumns, WINRT_WRAP(void), int32_t);
            this->shim().MaximumRowsOrColumns(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidth, WINRT_WRAP(void), double);
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeight, WINRT_WRAP(void), double);
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstCacheIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstCacheIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().FirstCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FirstVisibleIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FirstVisibleIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().FirstVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LastVisibleIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LastVisibleIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().LastVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LastCacheIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LastCacheIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().LastCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ScrollingDirection(Windows::UI::Xaml::Controls::PanelScrollingDirection* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollingDirection, WINRT_WRAP(Windows::UI::Xaml::Controls::PanelScrollingDirection));
            *value = detach_from<Windows::UI::Xaml::Controls::PanelScrollingDirection>(this->shim().ScrollingDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderPlacement, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>(this->shim().GroupHeaderPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderPlacement, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const&);
            this->shim().GroupHeaderPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CacheLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheLength, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().CacheLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CacheLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheLength, WINRT_WRAP(void), double);
            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 WINRT_CALL get_AreStickyGroupHeadersEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreStickyGroupHeadersEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AreStickyGroupHeadersEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AreStickyGroupHeadersEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreStickyGroupHeadersEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_GroupPaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupPaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaximumRowsOrColumnsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumnsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GroupHeaderPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupHeaderPlacementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupHeaderPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CacheLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CacheLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_AreStickyGroupHeadersEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreStickyGroupHeadersEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItems, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionMode(Windows::UI::Xaml::Controls::SelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(Windows::UI::Xaml::Controls::SelectionMode));
            *value = detach_from<Windows::UI::Xaml::Controls::SelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionMode(Windows::UI::Xaml::Controls::SelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SelectionMode const&);
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::SelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ScrollIntoView(void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollIntoView, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().ScrollIntoView(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectAll, WINRT_WRAP(void));
            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 WINRT_CALL get_SingleSelectionFollowsFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SingleSelectionFollowsFocus, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SingleSelectionFollowsFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SingleSelectionFollowsFocus, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ListBox), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ListBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ListBoxItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ListBoxItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SingleSelectionFollowsFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SingleSelectionFollowsFocusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ItemsSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSource, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemsSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSource, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().ItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayMemberPath(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMemberPath, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DisplayMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisplayMemberPath(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMemberPath, WINRT_WRAP(void), hstring const&);
            this->shim().DisplayMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionMode(Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode));
            *value = detach_from<Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionMode(Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode const&);
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectedIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedIndex, WINRT_WRAP(void), int32_t);
            this->shim().SelectedIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItem, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedValue(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedValue, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedValue(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedValue, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().SelectedValue(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedValuePath(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedValuePath, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().SelectedValuePath());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedValuePath(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedValuePath, WINRT_WRAP(void), hstring const&);
            this->shim().SelectedValuePath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItems, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ItemsPicked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsPicked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListPickerFlyout, Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const&);
            *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 WINRT_CALL remove_ItemsPicked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ItemsPicked, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ItemsPicked(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ShowAtAsync(void* target, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAtAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>>), Windows::UI::Xaml::FrameworkElement const);
            *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 WINRT_CALL get_ItemsSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayMemberPathProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMemberPathProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedIndexProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedItemProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItemProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedValueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedValuePathProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedValuePathProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItems, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionMode(Windows::UI::Xaml::Controls::ListViewSelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ListViewSelectionMode));
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionMode(Windows::UI::Xaml::Controls::ListViewSelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ListViewSelectionMode const&);
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSwipeEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSwipeEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSwipeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSwipeEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSwipeEnabled, WINRT_WRAP(void), bool);
            this->shim().IsSwipeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanDragItems(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanDragItems, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanDragItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanDragItems(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanDragItems, WINRT_WRAP(void), bool);
            this->shim().CanDragItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanReorderItems(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanReorderItems, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanReorderItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanReorderItems(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanReorderItems, WINRT_WRAP(void), bool);
            this->shim().CanReorderItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsItemClickEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsItemClickEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsItemClickEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsItemClickEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsItemClickEnabled, WINRT_WRAP(void), bool);
            this->shim().IsItemClickEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DataFetchSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DataFetchSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().DataFetchSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DataFetchSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DataFetchSize, WINRT_WRAP(void), double);
            this->shim().DataFetchSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IncrementalLoadingThreshold(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IncrementalLoadingThreshold, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().IncrementalLoadingThreshold());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IncrementalLoadingThreshold(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IncrementalLoadingThreshold, WINRT_WRAP(void), double);
            this->shim().IncrementalLoadingThreshold(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IncrementalLoadingTrigger(Windows::UI::Xaml::Controls::IncrementalLoadingTrigger* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IncrementalLoadingTrigger, WINRT_WRAP(Windows::UI::Xaml::Controls::IncrementalLoadingTrigger));
            *value = detach_from<Windows::UI::Xaml::Controls::IncrementalLoadingTrigger>(this->shim().IncrementalLoadingTrigger());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IncrementalLoadingTrigger(Windows::UI::Xaml::Controls::IncrementalLoadingTrigger value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IncrementalLoadingTrigger, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IncrementalLoadingTrigger const&);
            this->shim().IncrementalLoadingTrigger(*reinterpret_cast<Windows::UI::Xaml::Controls::IncrementalLoadingTrigger const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ItemClick(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemClick, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::ItemClickEventHandler const&);
            *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 WINRT_CALL remove_ItemClick(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ItemClick, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ItemClick(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_DragItemsStarting(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DragItemsStarting, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const&);
            *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 WINRT_CALL remove_DragItemsStarting(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DragItemsStarting, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DragItemsStarting(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ScrollIntoView(void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollIntoView, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().ScrollIntoView(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectAll, WINRT_WRAP(void));
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL LoadMoreItemsAsync(void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LoadMoreItemsAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Data::LoadMoreItemsResult>));
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Data::LoadMoreItemsResult>>(this->shim().LoadMoreItemsAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ScrollIntoViewWithAlignment(void* item, Windows::UI::Xaml::Controls::ScrollIntoViewAlignment alignment) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollIntoView, WINRT_WRAP(void), Windows::Foundation::IInspectable const&, Windows::UI::Xaml::Controls::ScrollIntoViewAlignment const&);
            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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().HeaderTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            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 WINRT_CALL get_ShowsScrollingPlaceholders(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowsScrollingPlaceholders, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ShowsScrollingPlaceholders());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ShowsScrollingPlaceholders(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowsScrollingPlaceholders, WINRT_WRAP(void), bool);
            this->shim().ShowsScrollingPlaceholders(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ContainerContentChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerContentChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const&);
            *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 WINRT_CALL remove_ContainerContentChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContainerContentChanging, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ContainerContentChanging(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SetDesiredContainerUpdateDuration(Windows::Foundation::TimeSpan duration) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetDesiredContainerUpdateDuration, WINRT_WRAP(void), Windows::Foundation::TimeSpan const&);
            this->shim().SetDesiredContainerUpdateDuration(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&duration));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Footer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Footer, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Footer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Footer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Footer, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Footer(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().FooterTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FooterTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().FooterTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().FooterTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FooterTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            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 WINRT_CALL get_ReorderMode(Windows::UI::Xaml::Controls::ListViewReorderMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ReorderMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ListViewReorderMode));
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewReorderMode>(this->shim().ReorderMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ReorderMode(Windows::UI::Xaml::Controls::ListViewReorderMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ReorderMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ListViewReorderMode const&);
            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 WINRT_CALL get_SelectedRanges(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedRanges, WINRT_WRAP(Windows::Foundation::Collections::IVectorView<Windows::UI::Xaml::Data::ItemIndexRange>));
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::UI::Xaml::Data::ItemIndexRange>>(this->shim().SelectedRanges());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsMultiSelectCheckBoxEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMultiSelectCheckBoxEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsMultiSelectCheckBoxEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsMultiSelectCheckBoxEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMultiSelectCheckBoxEnabled, WINRT_WRAP(void), bool);
            this->shim().IsMultiSelectCheckBoxEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_DragItemsCompleted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DragItemsCompleted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const&);
            *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 WINRT_CALL remove_DragItemsCompleted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DragItemsCompleted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DragItemsCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ChoosingItemContainer(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChoosingItemContainer, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const&);
            *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 WINRT_CALL remove_ChoosingItemContainer(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ChoosingItemContainer, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ChoosingItemContainer(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ChoosingGroupHeaderContainer(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChoosingGroupHeaderContainer, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const&);
            *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 WINRT_CALL remove_ChoosingGroupHeaderContainer(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ChoosingGroupHeaderContainer, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ChoosingGroupHeaderContainer(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SelectRange(void* itemIndexRange) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectRange, WINRT_WRAP(void), Windows::UI::Xaml::Data::ItemIndexRange const&);
            this->shim().SelectRange(*reinterpret_cast<Windows::UI::Xaml::Data::ItemIndexRange const*>(&itemIndexRange));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL DeselectRange(void* itemIndexRange) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DeselectRange, WINRT_WRAP(void), Windows::UI::Xaml::Data::ItemIndexRange const&);
            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 WINRT_CALL get_SingleSelectionFollowsFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SingleSelectionFollowsFocus, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SingleSelectionFollowsFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SingleSelectionFollowsFocus, WINRT_WRAP(void), bool);
            this->shim().SingleSelectionFollowsFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL IsDragSource(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDragSource, WINRT_WRAP(bool));
            *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 WINRT_CALL TryStartConnectedAnimationAsync(void* animation, void* item, void* elementName, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TryStartConnectedAnimationAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<bool>), Windows::UI::Xaml::Media::Animation::ConnectedAnimation const, Windows::Foundation::IInspectable const, hstring const);
            *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 WINRT_CALL PrepareConnectedAnimation(void* key, void* item, void* elementName, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrepareConnectedAnimation, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::ConnectedAnimation), hstring const&, Windows::Foundation::IInspectable const&, hstring const&);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ListViewBase), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewBase>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSwipeEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSwipeEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSwipeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanDragItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanDragItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanDragItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanReorderItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanReorderItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanReorderItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsItemClickEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsItemClickEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsItemClickEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DataFetchSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DataFetchSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataFetchSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IncrementalLoadingThresholdProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IncrementalLoadingThresholdProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IncrementalLoadingThresholdProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IncrementalLoadingTriggerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IncrementalLoadingTriggerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IncrementalLoadingTriggerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SemanticZoomOwnerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SemanticZoomOwnerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SemanticZoomOwnerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsActiveViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsActiveViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomedInViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomedInViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ShowsScrollingPlaceholdersProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowsScrollingPlaceholdersProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowsScrollingPlaceholdersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FooterTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FooterTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ReorderModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ReorderModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsMultiSelectCheckBoxEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMultiSelectCheckBoxEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SingleSelectionFollowsFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SingleSelectionFollowsFocusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ListView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ListView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ListViewHeaderItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewHeaderItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ListViewItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL GetRelativeScrollPosition(void* listViewBase, void* itemToKeyHandler, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetRelativeScrollPosition, WINRT_WRAP(hstring), Windows::UI::Xaml::Controls::ListViewBase const&, Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const&);
            *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 WINRT_CALL SetRelativeScrollPositionAsync(void* listViewBase, void* relativeScrollPosition, void* keyToItemHandler, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetRelativeScrollPositionAsync, WINRT_WRAP(Windows::Foundation::IAsyncAction), Windows::UI::Xaml::Controls::ListViewBase const, hstring const, Windows::UI::Xaml::Controls::ListViewKeyToItemHandler const);
            *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 WINRT_CALL get_PosterSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PosterSource, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PosterSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PosterSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PosterSource, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().PosterSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(void), Windows::Foundation::Uri const&);
            this->shim().Source(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsMuted(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMuted, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsMuted());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsMuted(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMuted, WINRT_WRAP(void), bool);
            this->shim().IsMuted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsAudioOnly(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAudioOnly, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsAudioOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AutoPlay(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoPlay, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AutoPlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AutoPlay(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoPlay, WINRT_WRAP(void), bool);
            this->shim().AutoPlay(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Volume(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Volume, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().Volume());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Volume(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Volume, WINRT_WRAP(void), double);
            this->shim().Volume(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Balance(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Balance, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().Balance());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Balance(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Balance, WINRT_WRAP(void), double);
            this->shim().Balance(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NaturalVideoHeight(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NaturalVideoHeight, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().NaturalVideoHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NaturalVideoWidth(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NaturalVideoWidth, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().NaturalVideoWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NaturalDuration(struct struct_Windows_UI_Xaml_Duration* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NaturalDuration, WINRT_WRAP(Windows::UI::Xaml::Duration));
            *value = detach_from<Windows::UI::Xaml::Duration>(this->shim().NaturalDuration());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Position(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Position, WINRT_WRAP(Windows::Foundation::TimeSpan));
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Position());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Position(Windows::Foundation::TimeSpan value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Position, WINRT_WRAP(void), Windows::Foundation::TimeSpan const&);
            this->shim().Position(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DownloadProgress(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DownloadProgress, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().DownloadProgress());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BufferingProgress(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BufferingProgress, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().BufferingProgress());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DownloadProgressOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DownloadProgressOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().DownloadProgressOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CurrentState(Windows::UI::Xaml::Media::MediaElementState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CurrentState, WINRT_WRAP(Windows::UI::Xaml::Media::MediaElementState));
            *value = detach_from<Windows::UI::Xaml::Media::MediaElementState>(this->shim().CurrentState());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Markers(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Markers, WINRT_WRAP(Windows::UI::Xaml::Media::TimelineMarkerCollection));
            *value = detach_from<Windows::UI::Xaml::Media::TimelineMarkerCollection>(this->shim().Markers());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanSeek(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanSeek, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanSeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanPause(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanPause, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanPause());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AudioStreamCount(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioStreamCount, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().AudioStreamCount());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AudioStreamIndex(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioStreamIndex, WINRT_WRAP(Windows::Foundation::IReference<int32_t>));
            *value = detach_from<Windows::Foundation::IReference<int32_t>>(this->shim().AudioStreamIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AudioStreamIndex(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioStreamIndex, WINRT_WRAP(void), Windows::Foundation::IReference<int32_t> const&);
            this->shim().AudioStreamIndex(*reinterpret_cast<Windows::Foundation::IReference<int32_t> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaybackRate(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaybackRate, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().PlaybackRate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaybackRate(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaybackRate, WINRT_WRAP(void), double);
            this->shim().PlaybackRate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsLooping(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsLooping, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsLooping());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsLooping(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsLooping, WINRT_WRAP(void), bool);
            this->shim().IsLooping(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlayToSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlayToSource, WINRT_WRAP(Windows::Media::PlayTo::PlayToSource));
            *value = detach_from<Windows::Media::PlayTo::PlayToSource>(this->shim().PlayToSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DefaultPlaybackRate(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultPlaybackRate, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().DefaultPlaybackRate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DefaultPlaybackRate(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultPlaybackRate, WINRT_WRAP(void), double);
            this->shim().DefaultPlaybackRate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AspectRatioWidth(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AspectRatioWidth, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().AspectRatioWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AspectRatioHeight(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AspectRatioHeight, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().AspectRatioHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RealTimePlayback(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RealTimePlayback, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().RealTimePlayback());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_RealTimePlayback(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RealTimePlayback, WINRT_WRAP(void), bool);
            this->shim().RealTimePlayback(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AudioCategory(Windows::UI::Xaml::Media::AudioCategory* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioCategory, WINRT_WRAP(Windows::UI::Xaml::Media::AudioCategory));
            *value = detach_from<Windows::UI::Xaml::Media::AudioCategory>(this->shim().AudioCategory());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AudioCategory(Windows::UI::Xaml::Media::AudioCategory value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioCategory, WINRT_WRAP(void), Windows::UI::Xaml::Media::AudioCategory const&);
            this->shim().AudioCategory(*reinterpret_cast<Windows::UI::Xaml::Media::AudioCategory const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AudioDeviceType(Windows::UI::Xaml::Media::AudioDeviceType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioDeviceType, WINRT_WRAP(Windows::UI::Xaml::Media::AudioDeviceType));
            *value = detach_from<Windows::UI::Xaml::Media::AudioDeviceType>(this->shim().AudioDeviceType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AudioDeviceType(Windows::UI::Xaml::Media::AudioDeviceType value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioDeviceType, WINRT_WRAP(void), Windows::UI::Xaml::Media::AudioDeviceType const&);
            this->shim().AudioDeviceType(*reinterpret_cast<Windows::UI::Xaml::Media::AudioDeviceType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProtectionManager(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProtectionManager, WINRT_WRAP(Windows::Media::Protection::MediaProtectionManager));
            *value = detach_from<Windows::Media::Protection::MediaProtectionManager>(this->shim().ProtectionManager());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ProtectionManager(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProtectionManager, WINRT_WRAP(void), Windows::Media::Protection::MediaProtectionManager const&);
            this->shim().ProtectionManager(*reinterpret_cast<Windows::Media::Protection::MediaProtectionManager const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stereo3DVideoPackingMode(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stereo3DVideoPackingMode, WINRT_WRAP(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode));
            *value = detach_from<Windows::UI::Xaml::Media::Stereo3DVideoPackingMode>(this->shim().Stereo3DVideoPackingMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Stereo3DVideoPackingMode(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stereo3DVideoPackingMode, WINRT_WRAP(void), Windows::UI::Xaml::Media::Stereo3DVideoPackingMode const&);
            this->shim().Stereo3DVideoPackingMode(*reinterpret_cast<Windows::UI::Xaml::Media::Stereo3DVideoPackingMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stereo3DVideoRenderMode(Windows::UI::Xaml::Media::Stereo3DVideoRenderMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stereo3DVideoRenderMode, WINRT_WRAP(Windows::UI::Xaml::Media::Stereo3DVideoRenderMode));
            *value = detach_from<Windows::UI::Xaml::Media::Stereo3DVideoRenderMode>(this->shim().Stereo3DVideoRenderMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Stereo3DVideoRenderMode(Windows::UI::Xaml::Media::Stereo3DVideoRenderMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stereo3DVideoRenderMode, WINRT_WRAP(void), Windows::UI::Xaml::Media::Stereo3DVideoRenderMode const&);
            this->shim().Stereo3DVideoRenderMode(*reinterpret_cast<Windows::UI::Xaml::Media::Stereo3DVideoRenderMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsStereo3DVideo(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStereo3DVideo, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsStereo3DVideo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_MediaOpened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaOpened, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_MediaOpened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(MediaOpened, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().MediaOpened(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_MediaEnded(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaEnded, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_MediaEnded(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(MediaEnded, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().MediaEnded(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_MediaFailed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaFailed, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::ExceptionRoutedEventHandler const&);
            *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 WINRT_CALL remove_MediaFailed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(MediaFailed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().MediaFailed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_DownloadProgressChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DownloadProgressChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_DownloadProgressChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DownloadProgressChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DownloadProgressChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_BufferingProgressChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BufferingProgressChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_BufferingProgressChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(BufferingProgressChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().BufferingProgressChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_CurrentStateChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CurrentStateChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_CurrentStateChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CurrentStateChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CurrentStateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_MarkerReached(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MarkerReached, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const&);
            *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 WINRT_CALL remove_MarkerReached(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(MarkerReached, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().MarkerReached(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_RateChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RateChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const&);
            *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 WINRT_CALL remove_RateChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(RateChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().RateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_VolumeChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VolumeChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_VolumeChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(VolumeChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().VolumeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_SeekCompleted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SeekCompleted, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_SeekCompleted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SeekCompleted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SeekCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL Stop() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stop, WINRT_WRAP(void));
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Play() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Play, WINRT_WRAP(void));
            this->shim().Play();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Pause() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Pause, WINRT_WRAP(void));
            this->shim().Pause();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL CanPlayType(void* type, Windows::UI::Xaml::Media::MediaCanPlayResponse* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanPlayType, WINRT_WRAP(Windows::UI::Xaml::Media::MediaCanPlayResponse), hstring const&);
            *result = detach_from<Windows::UI::Xaml::Media::MediaCanPlayResponse>(this->shim().CanPlayType(*reinterpret_cast<hstring const*>(&type)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetSource(void* stream, void* mimeType) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetSource, WINRT_WRAP(void), Windows::Storage::Streams::IRandomAccessStream const&, hstring const&);
            this->shim().SetSource(*reinterpret_cast<Windows::Storage::Streams::IRandomAccessStream const*>(&stream), *reinterpret_cast<hstring const*>(&mimeType));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAudioStreamLanguage(void* index, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAudioStreamLanguage, WINRT_WRAP(hstring), Windows::Foundation::IReference<int32_t> const&);
            *result = detach_from<hstring>(this->shim().GetAudioStreamLanguage(*reinterpret_cast<Windows::Foundation::IReference<int32_t> const*>(&index)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL AddAudioEffect(void* effectID, bool effectOptional, void* effectConfiguration) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AddAudioEffect, WINRT_WRAP(void), hstring const&, bool, Windows::Foundation::Collections::IPropertySet const&);
            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 WINRT_CALL AddVideoEffect(void* effectID, bool effectOptional, void* effectConfiguration) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AddVideoEffect, WINRT_WRAP(void), hstring const&, bool, Windows::Foundation::Collections::IPropertySet const&);
            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 WINRT_CALL RemoveAllEffects() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RemoveAllEffects, WINRT_WRAP(void));
            this->shim().RemoveAllEffects();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ActualStereo3DVideoPackingMode(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ActualStereo3DVideoPackingMode, WINRT_WRAP(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode));
            *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 WINRT_CALL get_AreTransportControlsEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreTransportControlsEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AreTransportControlsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AreTransportControlsEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreTransportControlsEnabled, WINRT_WRAP(void), bool);
            this->shim().AreTransportControlsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(Windows::UI::Xaml::Media::Stretch));
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(void), Windows::UI::Xaml::Media::Stretch const&);
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFullWindow(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindow, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFullWindow(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindow, WINRT_WRAP(void), bool);
            this->shim().IsFullWindow(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetMediaStreamSource(void* source) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetMediaStreamSource, WINRT_WRAP(void), Windows::Media::Core::IMediaSource const&);
            this->shim().SetMediaStreamSource(*reinterpret_cast<Windows::Media::Core::IMediaSource const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlayToPreferredSourceUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlayToPreferredSourceUri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().PlayToPreferredSourceUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlayToPreferredSourceUri(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlayToPreferredSourceUri, WINRT_WRAP(void), Windows::Foundation::Uri const&);
            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 WINRT_CALL get_TransportControls(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TransportControls, WINRT_WRAP(Windows::UI::Xaml::Controls::MediaTransportControls));
            *value = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().TransportControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TransportControls(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TransportControls, WINRT_WRAP(void), Windows::UI::Xaml::Controls::MediaTransportControls const&);
            this->shim().TransportControls(*reinterpret_cast<Windows::UI::Xaml::Controls::MediaTransportControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_PartialMediaFailureDetected(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PartialMediaFailureDetected, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaElement, Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const&);
            *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 WINRT_CALL remove_PartialMediaFailureDetected(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PartialMediaFailureDetected, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PartialMediaFailureDetected(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SetPlaybackSource(void* source) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetPlaybackSource, WINRT_WRAP(void), Windows::Media::Playback::IMediaPlaybackSource const&);
            this->shim().SetPlaybackSource(*reinterpret_cast<Windows::Media::Playback::IMediaPlaybackSource const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAsCastingSource(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAsCastingSource, WINRT_WRAP(Windows::Media::Casting::CastingSource));
            *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 WINRT_CALL get_PosterSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PosterSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PosterSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsMutedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsMutedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsMutedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsAudioOnlyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsAudioOnlyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAudioOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AutoPlayProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoPlayProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoPlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VolumeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VolumeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VolumeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BalanceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BalanceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BalanceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NaturalVideoHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NaturalVideoHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalVideoHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NaturalVideoWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NaturalVideoWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalVideoWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NaturalDurationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NaturalDurationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalDurationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PositionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PositionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DownloadProgressProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DownloadProgressProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DownloadProgressProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BufferingProgressProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BufferingProgressProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BufferingProgressProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DownloadProgressOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DownloadProgressOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DownloadProgressOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CurrentStateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CurrentStateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CurrentStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanSeekProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanSeekProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanSeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanPauseProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanPauseProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanPauseProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AudioStreamCountProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioStreamCountProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioStreamCountProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AudioStreamIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioStreamIndexProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioStreamIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaybackRateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaybackRateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaybackRateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsLoopingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsLoopingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsLoopingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlayToSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlayToSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DefaultPlaybackRateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultPlaybackRateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultPlaybackRateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AspectRatioWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AspectRatioWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AspectRatioWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AspectRatioHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AspectRatioHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AspectRatioHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RealTimePlaybackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RealTimePlaybackProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RealTimePlaybackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AudioCategoryProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioCategoryProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioCategoryProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AudioDeviceTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AudioDeviceTypeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioDeviceTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProtectionManagerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProtectionManagerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProtectionManagerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stereo3DVideoPackingModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stereo3DVideoPackingModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Stereo3DVideoPackingModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stereo3DVideoRenderModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stereo3DVideoRenderModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Stereo3DVideoRenderModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsStereo3DVideoProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStereo3DVideoProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStereo3DVideoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ActualStereo3DVideoPackingModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ActualStereo3DVideoPackingModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_AreTransportControlsEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreTransportControlsEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreTransportControlsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFullWindowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlayToPreferredSourceUriProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlayToPreferredSourceUriProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(Windows::Media::Playback::IMediaPlaybackSource));
            *value = detach_from<Windows::Media::Playback::IMediaPlaybackSource>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(void), Windows::Media::Playback::IMediaPlaybackSource const&);
            this->shim().Source(*reinterpret_cast<Windows::Media::Playback::IMediaPlaybackSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TransportControls(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TransportControls, WINRT_WRAP(Windows::UI::Xaml::Controls::MediaTransportControls));
            *value = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().TransportControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TransportControls(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TransportControls, WINRT_WRAP(void), Windows::UI::Xaml::Controls::MediaTransportControls const&);
            this->shim().TransportControls(*reinterpret_cast<Windows::UI::Xaml::Controls::MediaTransportControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AreTransportControlsEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreTransportControlsEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AreTransportControlsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AreTransportControlsEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreTransportControlsEnabled, WINRT_WRAP(void), bool);
            this->shim().AreTransportControlsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PosterSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PosterSource, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PosterSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PosterSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PosterSource, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().PosterSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(Windows::UI::Xaml::Media::Stretch));
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(void), Windows::UI::Xaml::Media::Stretch const&);
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AutoPlay(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoPlay, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AutoPlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AutoPlay(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoPlay, WINRT_WRAP(void), bool);
            this->shim().AutoPlay(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFullWindow(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindow, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFullWindow(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindow, WINRT_WRAP(void), bool);
            this->shim().IsFullWindow(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MediaPlayer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaPlayer, WINRT_WRAP(Windows::Media::Playback::MediaPlayer));
            *value = detach_from<Windows::Media::Playback::MediaPlayer>(this->shim().MediaPlayer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetMediaPlayer(void* mediaPlayer) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetMediaPlayer, WINRT_WRAP(void), Windows::Media::Playback::MediaPlayer const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MediaPlayerElement), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MediaPlayerElement>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AreTransportControlsEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreTransportControlsEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreTransportControlsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PosterSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PosterSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PosterSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AutoPlayProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoPlayProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoPlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFullWindowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MediaPlayerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaPlayerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_MediaPlayer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaPlayer, WINRT_WRAP(Windows::Media::Playback::MediaPlayer));
            *value = detach_from<Windows::Media::Playback::MediaPlayer>(this->shim().MediaPlayer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MediaPlayer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaPlayer, WINRT_WRAP(void), Windows::Media::Playback::MediaPlayer const&);
            this->shim().MediaPlayer(*reinterpret_cast<Windows::Media::Playback::MediaPlayer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(Windows::UI::Xaml::Media::Stretch));
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(void), Windows::UI::Xaml::Media::Stretch const&);
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFullWindow(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindow, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFullWindow(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindow, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MediaPlayerPresenter), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MediaPlayerPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_MediaPlayerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaPlayerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MediaPlayerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFullWindowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsFullWindowButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFullWindowButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFullWindowButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsFullWindowButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFullWindowEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFullWindowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFullWindowEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowEnabled, WINRT_WRAP(void), bool);
            this->shim().IsFullWindowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsZoomButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsZoomButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsZoomButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsZoomEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsZoomEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomEnabled, WINRT_WRAP(void), bool);
            this->shim().IsZoomEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFastForwardButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastForwardButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFastForwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFastForwardButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastForwardButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsFastForwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFastForwardEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastForwardEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFastForwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFastForwardEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastForwardEnabled, WINRT_WRAP(void), bool);
            this->shim().IsFastForwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFastRewindButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastRewindButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFastRewindButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFastRewindButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastRewindButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsFastRewindButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFastRewindEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastRewindEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsFastRewindEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsFastRewindEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastRewindEnabled, WINRT_WRAP(void), bool);
            this->shim().IsFastRewindEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsStopButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStopButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsStopButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsStopButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStopButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsStopButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsStopEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStopEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsStopEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsStopEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStopEnabled, WINRT_WRAP(void), bool);
            this->shim().IsStopEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVolumeButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVolumeButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsVolumeButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsVolumeButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVolumeButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsVolumeButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVolumeEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVolumeEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsVolumeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsVolumeEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVolumeEnabled, WINRT_WRAP(void), bool);
            this->shim().IsVolumeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPlaybackRateButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPlaybackRateButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPlaybackRateButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPlaybackRateButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPlaybackRateButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsPlaybackRateButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPlaybackRateEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPlaybackRateEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPlaybackRateEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPlaybackRateEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPlaybackRateEnabled, WINRT_WRAP(void), bool);
            this->shim().IsPlaybackRateEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSeekBarVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSeekBarVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSeekBarVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSeekBarVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSeekBarVisible, WINRT_WRAP(void), bool);
            this->shim().IsSeekBarVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSeekEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSeekEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSeekEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSeekEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSeekEnabled, WINRT_WRAP(void), bool);
            this->shim().IsSeekEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCompact(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompact, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsCompact());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsCompact(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompact, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_IsSkipForwardButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipForwardButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSkipForwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSkipForwardButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipForwardButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsSkipForwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSkipForwardEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipForwardEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSkipForwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSkipForwardEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipForwardEnabled, WINRT_WRAP(void), bool);
            this->shim().IsSkipForwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSkipBackwardButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipBackwardButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSkipBackwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSkipBackwardButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipBackwardButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsSkipBackwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSkipBackwardEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipBackwardEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSkipBackwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSkipBackwardEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipBackwardEnabled, WINRT_WRAP(void), bool);
            this->shim().IsSkipBackwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsNextTrackButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsNextTrackButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsNextTrackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsNextTrackButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsNextTrackButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsNextTrackButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPreviousTrackButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPreviousTrackButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPreviousTrackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPreviousTrackButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPreviousTrackButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsPreviousTrackButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FastPlayFallbackBehaviour(Windows::UI::Xaml::Media::FastPlayFallbackBehaviour* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FastPlayFallbackBehaviour, WINRT_WRAP(Windows::UI::Xaml::Media::FastPlayFallbackBehaviour));
            *value = detach_from<Windows::UI::Xaml::Media::FastPlayFallbackBehaviour>(this->shim().FastPlayFallbackBehaviour());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FastPlayFallbackBehaviour(Windows::UI::Xaml::Media::FastPlayFallbackBehaviour value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FastPlayFallbackBehaviour, WINRT_WRAP(void), Windows::UI::Xaml::Media::FastPlayFallbackBehaviour const&);
            this->shim().FastPlayFallbackBehaviour(*reinterpret_cast<Windows::UI::Xaml::Media::FastPlayFallbackBehaviour const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ThumbnailRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ThumbnailRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaTransportControls, Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const&);
            *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 WINRT_CALL remove_ThumbnailRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ThumbnailRequested, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_ShowAndHideAutomatically(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAndHideAutomatically, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ShowAndHideAutomatically());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ShowAndHideAutomatically(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAndHideAutomatically, WINRT_WRAP(void), bool);
            this->shim().ShowAndHideAutomatically(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsRepeatEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRepeatEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsRepeatEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsRepeatEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRepeatEnabled, WINRT_WRAP(void), bool);
            this->shim().IsRepeatEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsRepeatButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRepeatButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsRepeatButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsRepeatButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRepeatButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsRepeatButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Show() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Show, WINRT_WRAP(void));
            this->shim().Show();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Hide() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Hide, WINRT_WRAP(void));
            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 WINRT_CALL get_IsCompactOverlayButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactOverlayButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsCompactOverlayButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsCompactOverlayButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactOverlayButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsCompactOverlayButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCompactOverlayEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactOverlayEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsCompactOverlayEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsCompactOverlayEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactOverlayEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MediaTransportControls), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_DropoutOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DropoutOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DropoutOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetDropoutOrder(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetDropoutOrder, WINRT_WRAP(Windows::Foundation::IReference<int32_t>), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetDropoutOrder(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetDropoutOrder, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IReference<int32_t> const&);
            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 WINRT_CALL get_IsFullWindowButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFullWindowEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFullWindowEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFastForwardButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastForwardButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastForwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFastForwardEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastForwardEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastForwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFastRewindButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastRewindButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastRewindButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsFastRewindEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsFastRewindEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastRewindEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsStopButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStopButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStopButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsStopEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsStopEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStopEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVolumeButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVolumeButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVolumeButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVolumeEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVolumeEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVolumeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPlaybackRateButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPlaybackRateButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPlaybackRateButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPlaybackRateEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPlaybackRateEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPlaybackRateEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSeekBarVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSeekBarVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSeekBarVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSeekEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSeekEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSeekEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsSkipForwardButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipForwardButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipForwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSkipForwardEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipForwardEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipForwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSkipBackwardButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipBackwardButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipBackwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSkipBackwardEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSkipBackwardEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipBackwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsNextTrackButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsNextTrackButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsNextTrackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPreviousTrackButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPreviousTrackButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPreviousTrackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FastPlayFallbackBehaviourProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FastPlayFallbackBehaviourProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ShowAndHideAutomaticallyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAndHideAutomaticallyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAndHideAutomaticallyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsRepeatEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRepeatEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRepeatEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsRepeatButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsRepeatButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsCompactOverlayButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactOverlayButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactOverlayButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsCompactOverlayEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCompactOverlayEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuBarItem>));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MenuBar), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MenuBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Title(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Title, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Title(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Title, WINRT_WRAP(void), hstring const&);
            this->shim().Title(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MenuBarItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MenuBarItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MenuBarItemFlyout), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MenuBarItemFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_TitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuFlyoutPresenterStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuFlyoutPresenterStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().MenuFlyoutPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MenuFlyoutPresenterStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuFlyoutPresenterStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            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 WINRT_CALL ShowAt(void* targetElement, Windows::Foundation::Point point) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAt, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::Point const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MenuFlyout), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MenuFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Text(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Text(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(void), hstring const&);
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Command(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Command, WINRT_WRAP(Windows::UI::Xaml::Input::ICommand));
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Command(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Command, WINRT_WRAP(void), Windows::UI::Xaml::Input::ICommand const&);
            this->shim().Command(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameter, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameter, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().CommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Click(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Click, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_Click(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Click, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(Windows::UI::Xaml::Controls::IconElement));
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IconElement const&);
            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 WINRT_CALL get_KeyboardAcceleratorTextOverride(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverride, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_KeyboardAcceleratorTextOverride(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverride, WINRT_WRAP(void), hstring const&);
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MenuFlyoutItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyboardAcceleratorTextOverrideProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings));
            *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::IMenuFlyoutPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>
{
    int32_t WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MenuFlyoutPresenter), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_innerInterface);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::MenuFlyoutSeparator), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_MenuFlyoutPresenterStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuFlyoutPresenterStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Text(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Text(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(Windows::UI::Xaml::Controls::IconElement));
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IconElement const&);
            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 WINRT_CALL get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Navigate, WINRT_WRAP(bool), Windows::UI::Xaml::Interop::TypeName const&);
            *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 WINRT_CALL get_IsPaneOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneOpen, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPaneOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPaneOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneOpen, WINRT_WRAP(void), bool);
            this->shim().IsPaneOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompactModeThresholdWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactModeThresholdWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().CompactModeThresholdWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CompactModeThresholdWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactModeThresholdWidth, WINRT_WRAP(void), double);
            this->shim().CompactModeThresholdWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExpandedModeThresholdWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExpandedModeThresholdWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ExpandedModeThresholdWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ExpandedModeThresholdWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExpandedModeThresholdWidth, WINRT_WRAP(void), double);
            this->shim().ExpandedModeThresholdWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneFooter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneFooter, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PaneFooter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PaneFooter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneFooter, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().PaneFooter(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayMode(Windows::UI::Xaml::Controls::NavigationViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewDisplayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSettingsVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSettingsVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSettingsVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSettingsVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSettingsVisible, WINRT_WRAP(void), bool);
            this->shim().IsSettingsVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPaneToggleButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneToggleButtonVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPaneToggleButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPaneToggleButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneToggleButtonVisible, WINRT_WRAP(void), bool);
            this->shim().IsPaneToggleButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AlwaysShowHeader(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlwaysShowHeader, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AlwaysShowHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AlwaysShowHeader(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlwaysShowHeader, WINRT_WRAP(void), bool);
            this->shim().AlwaysShowHeader(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompactPaneLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactPaneLength, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CompactPaneLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactPaneLength, WINRT_WRAP(void), double);
            this->shim().CompactPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OpenPaneLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpenPaneLength, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().OpenPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OpenPaneLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpenPaneLength, WINRT_WRAP(void), double);
            this->shim().OpenPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneToggleButtonStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneToggleButtonStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().PaneToggleButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PaneToggleButtonStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneToggleButtonStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().PaneToggleButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItem, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItems, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().MenuItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemsSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemsSource, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().MenuItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MenuItemsSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemsSource, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().MenuItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SettingsItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SettingsItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SettingsItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AutoSuggestBox(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoSuggestBox, WINRT_WRAP(Windows::UI::Xaml::Controls::AutoSuggestBox));
            *value = detach_from<Windows::UI::Xaml::Controls::AutoSuggestBox>(this->shim().AutoSuggestBox());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AutoSuggestBox(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoSuggestBox, WINRT_WRAP(void), Windows::UI::Xaml::Controls::AutoSuggestBox const&);
            this->shim().AutoSuggestBox(*reinterpret_cast<Windows::UI::Xaml::Controls::AutoSuggestBox const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().MenuItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MenuItemTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().MenuItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemTemplateSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::DataTemplateSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().MenuItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MenuItemTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemTemplateSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            this->shim().MenuItemTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemContainerStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().MenuItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MenuItemContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemContainerStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().MenuItemContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemContainerStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemContainerStyleSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::StyleSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().MenuItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MenuItemContainerStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemContainerStyleSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::StyleSelector const&);
            this->shim().MenuItemContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL MenuItemFromContainer(void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemFromContainer, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL ContainerFromMenuItem(void* item, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerFromMenuItem, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), Windows::Foundation::IInspectable const&);
            *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 WINRT_CALL add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const&);
            *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 WINRT_CALL remove_SelectionChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ItemInvoked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemInvoked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const&);
            *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 WINRT_CALL remove_ItemInvoked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ItemInvoked, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ItemInvoked(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_DisplayModeChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayModeChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const&);
            *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 WINRT_CALL remove_DisplayModeChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DisplayModeChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_IsBackButtonVisible(Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBackButtonVisible, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible>(this->shim().IsBackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsBackButtonVisible(Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBackButtonVisible, WINRT_WRAP(void), Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible const&);
            this->shim().IsBackButtonVisible(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsBackEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBackEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsBackEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsBackEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBackEnabled, WINRT_WRAP(void), bool);
            this->shim().IsBackEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneTitle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneTitle, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PaneTitle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PaneTitle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneTitle, WINRT_WRAP(void), hstring const&);
            this->shim().PaneTitle(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_BackRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const&);
            *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 WINRT_CALL remove_BackRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(BackRequested, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().BackRequested(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PaneClosed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneClosed, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_PaneClosed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PaneClosed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PaneClosed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PaneClosing(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneClosing, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const&);
            *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 WINRT_CALL remove_PaneClosing(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PaneClosing, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PaneClosing(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PaneOpened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneOpened, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_PaneOpened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PaneOpened, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PaneOpened(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PaneOpening(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneOpening, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_PaneOpening(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PaneOpening, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_PaneDisplayMode(Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneDisplayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode>(this->shim().PaneDisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PaneDisplayMode(Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneDisplayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode const&);
            this->shim().PaneDisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneHeader, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PaneHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PaneHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneHeader, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().PaneHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneCustomContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneCustomContent, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PaneCustomContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PaneCustomContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneCustomContent, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().PaneCustomContent(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentOverlay(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentOverlay, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ContentOverlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentOverlay(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentOverlay, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().ContentOverlay(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPaneVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPaneVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPaneVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneVisible, WINRT_WRAP(void), bool);
            this->shim().IsPaneVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionFollowsFocus(Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFollowsFocus, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus>(this->shim().SelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionFollowsFocus(Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFollowsFocus, WINRT_WRAP(void), Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus const&);
            this->shim().SelectionFollowsFocus(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewTemplateSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ShoulderNavigationEnabled(Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShoulderNavigationEnabled, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled>(this->shim().ShoulderNavigationEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ShoulderNavigationEnabled(Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShoulderNavigationEnabled, WINRT_WRAP(void), Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled const&);
            this->shim().ShoulderNavigationEnabled(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OverflowLabelMode(Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowLabelMode, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode>(this->shim().OverflowLabelMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OverflowLabelMode(Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowLabelMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode const&);
            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 WINRT_CALL get_DisplayMode(Windows::UI::Xaml::Controls::NavigationViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewDisplayMode));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(Windows::UI::Xaml::Controls::IconElement));
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Icon, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IconElement const&);
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompactPaneLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactPaneLength, WINRT_WRAP(double));
            *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 WINRT_CALL get_SelectsOnInvoked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectsOnInvoked, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().SelectsOnInvoked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectsOnInvoked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectsOnInvoked, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewItemHeader), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemHeader>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_InvokedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InvokedItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().InvokedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSettingsInvoked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSettingsInvoked, WINRT_WRAP(bool));
            *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 WINRT_CALL get_InvokedItemContainer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InvokedItemContainer, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewItemBase));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemBase>(this->shim().InvokedItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RecommendedNavigationTransitionInfo(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RecommendedNavigationTransitionInfo, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewItemSeparator), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompactPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactPaneLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectsOnInvokedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectsOnInvokedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewList), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewList>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSettingsSelected(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSettingsSelected, WINRT_WRAP(bool));
            *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 WINRT_CALL get_SelectedItemContainer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItemContainer, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewItemBase));
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemBase>(this->shim().SelectedItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RecommendedNavigationTransitionInfo(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RecommendedNavigationTransitionInfo, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo));
            *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 WINRT_CALL get_IsPaneOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneOpenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompactModeThresholdWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactModeThresholdWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactModeThresholdWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExpandedModeThresholdWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExpandedModeThresholdWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedModeThresholdWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneFooterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneFooterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneFooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSettingsVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSettingsVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSettingsVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPaneToggleButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneToggleButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneToggleButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AlwaysShowHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlwaysShowHeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlwaysShowHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompactPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactPaneLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OpenPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpenPaneLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpenPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneToggleButtonStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneToggleButtonStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneToggleButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemsSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemsSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedItemProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItemProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SettingsItemProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SettingsItemProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SettingsItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AutoSuggestBoxProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AutoSuggestBoxProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoSuggestBoxProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemTemplateSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemContainerStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemContainerStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MenuItemContainerStyleSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MenuItemContainerStyleSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsBackButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBackButtonVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsBackEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsBackEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBackEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneTitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneTitleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_PaneDisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneDisplayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneDisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneHeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneCustomContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneCustomContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneCustomContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentOverlayProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentOverlayProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentOverlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPaneVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionFollowsFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFollowsFocusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettingsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettingsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ShoulderNavigationEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShoulderNavigationEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShoulderNavigationEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OverflowLabelModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowLabelModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_TopPadding(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopPadding, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().TopPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OverflowButtonVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowButtonVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().OverflowButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneToggleButtonVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneToggleButtonVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().PaneToggleButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackButtonVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackButtonVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().BackButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopPaneVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopPaneVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().TopPaneVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LeftPaneVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftPaneVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().LeftPaneVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SingleSelectionFollowsFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SingleSelectionFollowsFocus, WINRT_WRAP(bool));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::NavigationViewTemplateSettings), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewTemplateSettings>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_TopPaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopPaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OverflowButtonVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowButtonVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneToggleButtonVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneToggleButtonVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneToggleButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackButtonVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackButtonVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopPaneVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopPaneVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopPaneVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LeftPaneVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftPaneVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftPaneVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SingleSelectionFollowsFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SingleSelectionFollowsFocusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Value(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Value, WINRT_WRAP(hstring));
            *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 WINRT_CALL get_CallingUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CallingUri, WINRT_WRAP(Windows::Foundation::Uri));
            *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 WINRT_CALL get_Frame(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Frame, WINRT_WRAP(Windows::UI::Xaml::Controls::Frame));
            *value = detach_from<Windows::UI::Xaml::Controls::Frame>(this->shim().Frame());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NavigationCacheMode(Windows::UI::Xaml::Navigation::NavigationCacheMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigationCacheMode, WINRT_WRAP(Windows::UI::Xaml::Navigation::NavigationCacheMode));
            *value = detach_from<Windows::UI::Xaml::Navigation::NavigationCacheMode>(this->shim().NavigationCacheMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_NavigationCacheMode(Windows::UI::Xaml::Navigation::NavigationCacheMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigationCacheMode, WINRT_WRAP(void), Windows::UI::Xaml::Navigation::NavigationCacheMode const&);
            this->shim().NavigationCacheMode(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationCacheMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopAppBar(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopAppBar, WINRT_WRAP(Windows::UI::Xaml::Controls::AppBar));
            *value = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().TopAppBar());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TopAppBar(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopAppBar, WINRT_WRAP(void), Windows::UI::Xaml::Controls::AppBar const&);
            this->shim().TopAppBar(*reinterpret_cast<Windows::UI::Xaml::Controls::AppBar const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BottomAppBar(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BottomAppBar, WINRT_WRAP(Windows::UI::Xaml::Controls::AppBar));
            *value = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().BottomAppBar());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BottomAppBar(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BottomAppBar, WINRT_WRAP(void), Windows::UI::Xaml::Controls::AppBar const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Page), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Page>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL OnNavigatedFrom(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnNavigatedFrom, WINRT_WRAP(void), Windows::UI::Xaml::Navigation::NavigationEventArgs const&);
            this->shim().OnNavigatedFrom(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnNavigatedTo(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnNavigatedTo, WINRT_WRAP(void), Windows::UI::Xaml::Navigation::NavigationEventArgs const&);
            this->shim().OnNavigatedTo(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnNavigatingFrom(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnNavigatingFrom, WINRT_WRAP(void), Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const&);
            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 WINRT_CALL get_FrameProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FrameProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FrameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopAppBarProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopAppBarProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopAppBarProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BottomAppBarProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BottomAppBarProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Children(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Children, WINRT_WRAP(Windows::UI::Xaml::Controls::UIElementCollection));
            *value = detach_from<Windows::UI::Xaml::Controls::UIElementCollection>(this->shim().Children());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsItemsHost(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsItemsHost, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsItemsHost());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ChildrenTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChildrenTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ChildrenTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ChildrenTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChildrenTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            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 WINRT_CALL get_BackgroundTransition(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundTransition, WINRT_WRAP(Windows::UI::Xaml::BrushTransition));
            *value = detach_from<Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundTransition(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundTransition, WINRT_WRAP(void), Windows::UI::Xaml::BrushTransition const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Panel), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Panel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsItemsHostProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsItemsHostProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsItemsHostProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ChildrenTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChildrenTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Child(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Child, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Child(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Child, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalShift(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalShift, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().HorizontalShift());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalShift(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalShift, WINRT_WRAP(void), double);
            this->shim().HorizontalShift(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSourceEndOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceEndOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().HorizontalSourceEndOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalSourceEndOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceEndOffset, WINRT_WRAP(void), double);
            this->shim().HorizontalSourceEndOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceOffsetKind, WINRT_WRAP(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind));
            *value = detach_from<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind>(this->shim().HorizontalSourceOffsetKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceOffsetKind, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const&);
            this->shim().HorizontalSourceOffsetKind(*reinterpret_cast<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSourceStartOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceStartOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().HorizontalSourceStartOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalSourceStartOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceStartOffset, WINRT_WRAP(void), double);
            this->shim().HorizontalSourceStartOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHorizontalShiftClamped(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalShiftClamped, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsHorizontalShiftClamped());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsHorizontalShiftClamped(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalShiftClamped, WINRT_WRAP(void), bool);
            this->shim().IsHorizontalShiftClamped(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVerticalShiftClamped(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalShiftClamped, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsVerticalShiftClamped());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsVerticalShiftClamped(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalShiftClamped, WINRT_WRAP(void), bool);
            this->shim().IsVerticalShiftClamped(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxHorizontalShiftRatio(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHorizontalShiftRatio, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MaxHorizontalShiftRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxHorizontalShiftRatio(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHorizontalShiftRatio, WINRT_WRAP(void), double);
            this->shim().MaxHorizontalShiftRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxVerticalShiftRatio(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxVerticalShiftRatio, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MaxVerticalShiftRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxVerticalShiftRatio(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxVerticalShiftRatio, WINRT_WRAP(void), double);
            this->shim().MaxVerticalShiftRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Source(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalShift(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalShift, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().VerticalShift());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalShift(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalShift, WINRT_WRAP(void), double);
            this->shim().VerticalShift(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSourceEndOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceEndOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().VerticalSourceEndOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalSourceEndOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceEndOffset, WINRT_WRAP(void), double);
            this->shim().VerticalSourceEndOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceOffsetKind, WINRT_WRAP(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind));
            *value = detach_from<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind>(this->shim().VerticalSourceOffsetKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceOffsetKind, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const&);
            this->shim().VerticalSourceOffsetKind(*reinterpret_cast<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSourceStartOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceStartOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().VerticalSourceStartOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalSourceStartOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceStartOffset, WINRT_WRAP(void), double);
            this->shim().VerticalSourceStartOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL RefreshAutomaticHorizontalOffsets() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RefreshAutomaticHorizontalOffsets, WINRT_WRAP(void));
            this->shim().RefreshAutomaticHorizontalOffsets();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL RefreshAutomaticVerticalOffsets() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RefreshAutomaticVerticalOffsets, WINRT_WRAP(void));
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ParallaxView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ParallaxView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ChildProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChildProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSourceEndOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceEndOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceEndOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSourceOffsetKindProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceOffsetKindProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceOffsetKindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSourceStartOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSourceStartOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceStartOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxHorizontalShiftRatioProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHorizontalShiftRatioProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHorizontalShiftRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalShiftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalShiftProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalShiftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHorizontalShiftClampedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalShiftClampedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalShiftClampedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVerticalShiftClampedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalShiftClampedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalShiftClampedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSourceEndOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceEndOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceEndOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSourceOffsetKindProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceOffsetKindProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceOffsetKindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSourceStartOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSourceStartOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceStartOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxVerticalShiftRatioProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxVerticalShiftRatioProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxVerticalShiftRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalShiftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalShiftProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Password(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Password, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Password());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Password(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Password, WINRT_WRAP(void), hstring const&);
            this->shim().Password(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PasswordChar(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordChar, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PasswordChar());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PasswordChar(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordChar, WINRT_WRAP(void), hstring const&);
            this->shim().PasswordChar(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPasswordRevealButtonEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPasswordRevealButtonEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPasswordRevealButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPasswordRevealButtonEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPasswordRevealButtonEnabled, WINRT_WRAP(void), bool);
            this->shim().IsPasswordRevealButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLength, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxLength(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLength, WINRT_WRAP(void), int32_t);
            this->shim().MaxLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_PasswordChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_PasswordChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PasswordChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PasswordChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const&);
            *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 WINRT_CALL remove_ContextMenuOpening(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectAll, WINRT_WRAP(void));
            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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(void), hstring const&);
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocus, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocus, WINRT_WRAP(void), bool);
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Paste(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Paste, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::TextControlPasteEventHandler const&);
            *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 WINRT_CALL remove_Paste(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Paste, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_PasswordRevealMode(Windows::UI::Xaml::Controls::PasswordRevealMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordRevealMode, WINRT_WRAP(Windows::UI::Xaml::Controls::PasswordRevealMode));
            *value = detach_from<Windows::UI::Xaml::Controls::PasswordRevealMode>(this->shim().PasswordRevealMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PasswordRevealMode(Windows::UI::Xaml::Controls::PasswordRevealMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordRevealMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::PasswordRevealMode const&);
            this->shim().PasswordRevealMode(*reinterpret_cast<Windows::UI::Xaml::Controls::PasswordRevealMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(Windows::UI::Xaml::TextReadingOrder));
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(void), Windows::UI::Xaml::TextReadingOrder const&);
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InputScope(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScope, WINRT_WRAP(Windows::UI::Xaml::Input::InputScope));
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_InputScope(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScope, WINRT_WRAP(void), Windows::UI::Xaml::Input::InputScope const&);
            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 WINRT_CALL add_PasswordChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PasswordBox, Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const&);
            *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 WINRT_CALL remove_PasswordChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PasswordChanging, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_CanPasteClipboardContent(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanPasteClipboardContent, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanPasteClipboardContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionFlyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionFlyout(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::FlyoutBase const&);
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Description(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Description(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL PasteFromClipboard() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasteFromClipboard, WINRT_WRAP(void));
            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 WINRT_CALL get_IsContentChanging(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsContentChanging, WINRT_WRAP(bool));
            *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 WINRT_CALL get_PasswordProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PasswordCharProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordCharProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordCharProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPasswordRevealButtonEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPasswordRevealButtonEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPasswordRevealButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_PasswordRevealModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasswordRevealModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordRevealModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InputScopeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScopeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CanPasteClipboardContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanPasteClipboardContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanPasteClipboardContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionFlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DescriptionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DescriptionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Data(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Data, WINRT_WRAP(Windows::UI::Xaml::Media::Geometry));
            *value = detach_from<Windows::UI::Xaml::Media::Geometry>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Data(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Data, WINRT_WRAP(void), Windows::UI::Xaml::Media::Geometry const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::PathIcon), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::PathIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Data(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Data, WINRT_WRAP(Windows::UI::Xaml::Media::Geometry));
            *value = detach_from<Windows::UI::Xaml::Media::Geometry>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Data(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Data, WINRT_WRAP(void), Windows::UI::Xaml::Media::Geometry const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::PathIconSource), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::PathIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_DataProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DataProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DataProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DataProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BadgeNumber(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeNumber, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().BadgeNumber());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BadgeNumber(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeNumber, WINRT_WRAP(void), int32_t);
            this->shim().BadgeNumber(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BadgeGlyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeGlyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().BadgeGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BadgeGlyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeGlyph, WINRT_WRAP(void), hstring const&);
            this->shim().BadgeGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BadgeImageSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeImageSource, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().BadgeImageSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BadgeImageSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeImageSource, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().BadgeImageSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BadgeText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().BadgeText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BadgeText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeText, WINRT_WRAP(void), hstring const&);
            this->shim().BadgeText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsGroup(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroup, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsGroup());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsGroup(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroup, WINRT_WRAP(void), bool);
            this->shim().IsGroup(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Contact(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Contact, WINRT_WRAP(Windows::ApplicationModel::Contacts::Contact));
            *value = detach_from<Windows::ApplicationModel::Contacts::Contact>(this->shim().Contact());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Contact(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Contact, WINRT_WRAP(void), Windows::ApplicationModel::Contacts::Contact const&);
            this->shim().Contact(*reinterpret_cast<Windows::ApplicationModel::Contacts::Contact const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayName(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayName, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DisplayName());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisplayName(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayName, WINRT_WRAP(void), hstring const&);
            this->shim().DisplayName(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Initials(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Initials, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Initials());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Initials(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Initials, WINRT_WRAP(void), hstring const&);
            this->shim().Initials(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreferSmallImage(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreferSmallImage, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().PreferSmallImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PreferSmallImage(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreferSmallImage, WINRT_WRAP(void), bool);
            this->shim().PreferSmallImage(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProfilePicture(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProfilePicture, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().ProfilePicture());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ProfilePicture(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProfilePicture, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::PersonPicture), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::PersonPicture>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_BadgeNumberProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeNumberProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeNumberProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BadgeGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeGlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BadgeImageSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeImageSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeImageSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BadgeTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BadgeTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsGroupProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsGroupProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContactProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayNameProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayNameProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InitialsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InitialsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreferSmallImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreferSmallImageProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreferSmallImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProfilePictureProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProfilePictureProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ConfirmationButtonsVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfirmationButtonsVisible, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ConfirmationButtonsVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ConfirmationButtonsVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfirmationButtonsVisible, WINRT_WRAP(void), bool);
            this->shim().ConfirmationButtonsVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Confirmed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Confirmed, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PickerFlyout, Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const&);
            *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 WINRT_CALL remove_Confirmed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Confirmed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Confirmed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ShowAtAsync(void* target, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAtAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<bool>), Windows::UI::Xaml::FrameworkElement const);
            *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 WINRT_CALL get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ConfirmationButtonsVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ConfirmationButtonsVisibleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Title(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Title, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Title(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Title, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Title(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TitleTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().TitleTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TitleTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().TitleTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectedIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedIndex, WINRT_WRAP(void), int32_t);
            this->shim().SelectedIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItem, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsLocked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsLocked, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsLocked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsLocked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsLocked, WINRT_WRAP(void), bool);
            this->shim().IsLocked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::SelectionChangedEventHandler const&);
            *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 WINRT_CALL remove_SelectionChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PivotItemLoading(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PivotItemLoading, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const&);
            *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 WINRT_CALL remove_PivotItemLoading(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PivotItemLoading, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PivotItemLoading(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PivotItemLoaded(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PivotItemLoaded, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const&);
            *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 WINRT_CALL remove_PivotItemLoaded(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PivotItemLoaded, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PivotItemLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PivotItemUnloading(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PivotItemUnloading, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const&);
            *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 WINRT_CALL remove_PivotItemUnloading(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PivotItemUnloading, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PivotItemUnloading(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PivotItemUnloaded(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PivotItemUnloaded, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const&);
            *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 WINRT_CALL remove_PivotItemUnloaded(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PivotItemUnloaded, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_LeftHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeader, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().LeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LeftHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeader, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().LeftHeader(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LeftHeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().LeftHeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LeftHeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().LeftHeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RightHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightHeader, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().RightHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_RightHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightHeader, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().RightHeader(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RightHeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightHeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().RightHeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_RightHeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightHeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            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 WINRT_CALL get_HeaderFocusVisualPlacement(Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderFocusVisualPlacement, WINRT_WRAP(Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement));
            *value = detach_from<Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement>(this->shim().HeaderFocusVisualPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderFocusVisualPlacement(Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderFocusVisualPlacement, WINRT_WRAP(void), Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement const&);
            this->shim().HeaderFocusVisualPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHeaderItemsCarouselEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHeaderItemsCarouselEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsHeaderItemsCarouselEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsHeaderItemsCarouselEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHeaderItemsCarouselEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Pivot), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Pivot>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(Windows::UI::Xaml::Controls::PivotItem));
            *value = detach_from<Windows::UI::Xaml::Controls::PivotItem>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Item(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(void), Windows::UI::Xaml::Controls::PivotItem const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::PivotItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::PivotItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_TitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TitleTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedIndexProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedItemProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedItemProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsLockedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsLockedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsLockedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SlideInAnimationGroupProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SlideInAnimationGroupProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SlideInAnimationGroupProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetSlideInAnimationGroup(void* element, Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetSlideInAnimationGroup, WINRT_WRAP(Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup), Windows::UI::Xaml::FrameworkElement const&);
            *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 WINRT_CALL SetSlideInAnimationGroup(void* element, Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetSlideInAnimationGroup, WINRT_WRAP(void), Windows::UI::Xaml::FrameworkElement const&, Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const&);
            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 WINRT_CALL get_LeftHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LeftHeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RightHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightHeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RightHeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightHeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HeaderFocusVisualPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderFocusVisualPlacementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderFocusVisualPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHeaderItemsCarouselEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHeaderItemsCarouselEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsIndeterminate(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsIndeterminate, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsIndeterminate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsIndeterminate(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsIndeterminate, WINRT_WRAP(void), bool);
            this->shim().IsIndeterminate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ShowError(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowError, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ShowError());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ShowError(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowError, WINRT_WRAP(void), bool);
            this->shim().ShowError(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ShowPaused(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowPaused, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ShowPaused());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ShowPaused(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowPaused, WINRT_WRAP(void), bool);
            this->shim().ShowPaused(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ProgressBar), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ProgressBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IsIndeterminateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsIndeterminateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsIndeterminateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ShowErrorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowErrorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowErrorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ShowPausedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowPausedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsActive(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsActive, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsActive());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsActive(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsActive, WINRT_WRAP(void), bool);
            this->shim().IsActive(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings));
            *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 WINRT_CALL get_IsActiveProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsActiveProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_GroupName(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupName, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().GroupName());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GroupName(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupName, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RadioButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RadioButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_GroupNameProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GroupNameProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Caption(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Caption, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Caption());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Caption(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Caption, WINRT_WRAP(void), hstring const&);
            this->shim().Caption(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InitialSetValue(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InitialSetValue, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().InitialSetValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_InitialSetValue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InitialSetValue, WINRT_WRAP(void), int32_t);
            this->shim().InitialSetValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsClearEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsClearEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsClearEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsClearEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsClearEnabled, WINRT_WRAP(void), bool);
            this->shim().IsClearEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsReadOnly(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnly, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsReadOnly(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnly, WINRT_WRAP(void), bool);
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxRating(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxRating, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxRating());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxRating(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxRating, WINRT_WRAP(void), int32_t);
            this->shim().MaxRating(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderValue(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderValue, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().PlaceholderValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderValue(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderValue, WINRT_WRAP(void), double);
            this->shim().PlaceholderValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemInfo(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemInfo, WINRT_WRAP(Windows::UI::Xaml::Controls::RatingItemInfo));
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemInfo>(this->shim().ItemInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemInfo(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemInfo, WINRT_WRAP(void), Windows::UI::Xaml::Controls::RatingItemInfo const&);
            this->shim().ItemInfo(*reinterpret_cast<Windows::UI::Xaml::Controls::RatingItemInfo const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Value(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Value, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().Value());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Value(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Value, WINRT_WRAP(void), double);
            this->shim().Value(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ValueChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ValueChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RatingControl, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_ValueChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ValueChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RatingControl), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RatingControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_CaptionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CaptionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CaptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InitialSetValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InitialSetValueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialSetValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsClearEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsClearEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsClearEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsReadOnlyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnlyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxRatingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxRatingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxRatingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderValueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemInfoProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemInfoProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemInfoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ValueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DisabledGlyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledGlyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DisabledGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisabledGlyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledGlyph, WINRT_WRAP(void), hstring const&);
            this->shim().DisabledGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Glyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Glyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Glyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Glyph, WINRT_WRAP(void), hstring const&);
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PointerOverGlyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverGlyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PointerOverGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PointerOverGlyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverGlyph, WINRT_WRAP(void), hstring const&);
            this->shim().PointerOverGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PointerOverPlaceholderGlyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverPlaceholderGlyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PointerOverPlaceholderGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PointerOverPlaceholderGlyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverPlaceholderGlyph, WINRT_WRAP(void), hstring const&);
            this->shim().PointerOverPlaceholderGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderGlyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderGlyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PlaceholderGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderGlyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderGlyph, WINRT_WRAP(void), hstring const&);
            this->shim().PlaceholderGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_UnsetGlyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnsetGlyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().UnsetGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_UnsetGlyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnsetGlyph, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RatingItemFontInfo), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemFontInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_DisabledGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledGlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderGlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PointerOverGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverGlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PointerOverPlaceholderGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverPlaceholderGlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverPlaceholderGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_UnsetGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnsetGlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DisabledImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledImage, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().DisabledImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisabledImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledImage, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().DisabledImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Image(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Image, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().Image());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Image(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Image, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().Image(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderImage, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PlaceholderImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderImage, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().PlaceholderImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PointerOverImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverImage, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PointerOverImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PointerOverImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverImage, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().PointerOverImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PointerOverPlaceholderImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverPlaceholderImage, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PointerOverPlaceholderImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PointerOverPlaceholderImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverPlaceholderImage, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().PointerOverPlaceholderImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_UnsetImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnsetImage, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().UnsetImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_UnsetImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnsetImage, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RatingItemImageInfo), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemImageInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_DisabledImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledImageProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ImageProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderImageProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PointerOverImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverImageProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PointerOverPlaceholderImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PointerOverPlaceholderImageProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverPlaceholderImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_UnsetImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnsetImageProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RatingItemInfo), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Visualizer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Visualizer, WINRT_WRAP(Windows::UI::Xaml::Controls::RefreshVisualizer));
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizer>(this->shim().Visualizer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Visualizer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Visualizer, WINRT_WRAP(void), Windows::UI::Xaml::Controls::RefreshVisualizer const&);
            this->shim().Visualizer(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshVisualizer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PullDirection(Windows::UI::Xaml::Controls::RefreshPullDirection* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PullDirection, WINRT_WRAP(Windows::UI::Xaml::Controls::RefreshPullDirection));
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshPullDirection>(this->shim().PullDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PullDirection(Windows::UI::Xaml::Controls::RefreshPullDirection value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PullDirection, WINRT_WRAP(void), Windows::UI::Xaml::Controls::RefreshPullDirection const&);
            this->shim().PullDirection(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshPullDirection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_RefreshRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RefreshRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshContainer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const&);
            *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 WINRT_CALL remove_RefreshRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(RefreshRequested, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().RefreshRequested(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL RequestRefresh() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RequestRefresh, WINRT_WRAP(void));
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RefreshContainer), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshContainer>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_VisualizerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VisualizerProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VisualizerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PullDirectionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PullDirectionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_InteractionRatio(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InteractionRatio, WINRT_WRAP(double));
            *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 WINRT_CALL GetDeferral(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetDeferral, WINRT_WRAP(Windows::Foundation::Deferral));
            *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 WINRT_CALL get_OldState(Windows::UI::Xaml::Controls::RefreshVisualizerState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldState, WINRT_WRAP(Windows::UI::Xaml::Controls::RefreshVisualizerState));
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().OldState());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NewState(Windows::UI::Xaml::Controls::RefreshVisualizerState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewState, WINRT_WRAP(Windows::UI::Xaml::Controls::RefreshVisualizerState));
            *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 WINRT_CALL RequestRefresh() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RequestRefresh, WINRT_WRAP(void));
            this->shim().RequestRefresh();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::RefreshVisualizerOrientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::RefreshVisualizerOrientation));
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerOrientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::RefreshVisualizerOrientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::RefreshVisualizerOrientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshVisualizerOrientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_State(Windows::UI::Xaml::Controls::RefreshVisualizerState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(State, WINRT_WRAP(Windows::UI::Xaml::Controls::RefreshVisualizerState));
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().State());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_RefreshRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RefreshRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const&);
            *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 WINRT_CALL remove_RefreshRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(RefreshRequested, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().RefreshRequested(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_RefreshStateChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RefreshStateChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const&);
            *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 WINRT_CALL remove_RefreshStateChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(RefreshStateChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RefreshVisualizer), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizer>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_InfoProviderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InfoProviderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InfoProviderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(Windows::UI::Xaml::CornerRadius));
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(void), Windows::UI::Xaml::CornerRadius const&);
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            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 WINRT_CALL get_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(Windows::UI::Xaml::Controls::BackgroundSizing));
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(void), Windows::UI::Xaml::Controls::BackgroundSizing const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RelativePanel), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RelativePanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_LeftOfProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftOfProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftOfProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetLeftOf(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetLeftOf, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetLeftOf(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetLeftOf, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_AboveProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AboveProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AboveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAbove(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAbove, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetAbove(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAbove, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_RightOfProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightOfProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightOfProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetRightOf(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetRightOf, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetRightOf(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetRightOf, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_BelowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BelowProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BelowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetBelow(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetBelow, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetBelow(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetBelow, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_AlignHorizontalCenterWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignHorizontalCenterWithProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignHorizontalCenterWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignHorizontalCenterWith(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignHorizontalCenterWith, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetAlignHorizontalCenterWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignHorizontalCenterWith, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_AlignVerticalCenterWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignVerticalCenterWithProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignVerticalCenterWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignVerticalCenterWith(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignVerticalCenterWith, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetAlignVerticalCenterWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignVerticalCenterWith, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_AlignLeftWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignLeftWithProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignLeftWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignLeftWith(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignLeftWith, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetAlignLeftWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignLeftWith, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_AlignTopWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignTopWithProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignTopWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignTopWith(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignTopWith, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetAlignTopWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignTopWith, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_AlignRightWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignRightWithProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignRightWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignRightWith(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignRightWith, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetAlignRightWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignRightWith, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_AlignBottomWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignBottomWithProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignBottomWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignBottomWith(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignBottomWith, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::UIElement const&);
            *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 WINRT_CALL SetAlignBottomWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignBottomWith, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_AlignLeftWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignLeftWithPanelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignLeftWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignLeftWithPanel(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignLeftWithPanel, WINRT_WRAP(bool), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<bool>(this->shim().GetAlignLeftWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetAlignLeftWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignLeftWithPanel, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, bool);
            this->shim().SetAlignLeftWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AlignTopWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignTopWithPanelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignTopWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignTopWithPanel(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignTopWithPanel, WINRT_WRAP(bool), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<bool>(this->shim().GetAlignTopWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetAlignTopWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignTopWithPanel, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, bool);
            this->shim().SetAlignTopWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AlignRightWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignRightWithPanelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignRightWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignRightWithPanel(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignRightWithPanel, WINRT_WRAP(bool), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<bool>(this->shim().GetAlignRightWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetAlignRightWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignRightWithPanel, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, bool);
            this->shim().SetAlignRightWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AlignBottomWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignBottomWithPanelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignBottomWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignBottomWithPanel(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignBottomWithPanel, WINRT_WRAP(bool), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<bool>(this->shim().GetAlignBottomWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetAlignBottomWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignBottomWithPanel, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, bool);
            this->shim().SetAlignBottomWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AlignHorizontalCenterWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignHorizontalCenterWithPanelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignHorizontalCenterWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignHorizontalCenterWithPanel(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignHorizontalCenterWithPanel, WINRT_WRAP(bool), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<bool>(this->shim().GetAlignHorizontalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetAlignHorizontalCenterWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignHorizontalCenterWithPanel, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, bool);
            this->shim().SetAlignHorizontalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AlignVerticalCenterWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AlignVerticalCenterWithPanelProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignVerticalCenterWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetAlignVerticalCenterWithPanel(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlignVerticalCenterWithPanel, WINRT_WRAP(bool), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<bool>(this->shim().GetAlignVerticalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetAlignVerticalCenterWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetAlignVerticalCenterWithPanel, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, bool);
            this->shim().SetAlignVerticalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThicknessProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadiusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BackgroundSizingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsReadOnly(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnly, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsReadOnly(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnly, WINRT_WRAP(void), bool);
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AcceptsReturn(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AcceptsReturn, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AcceptsReturn());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AcceptsReturn(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AcceptsReturn, WINRT_WRAP(void), bool);
            this->shim().AcceptsReturn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignment, WINRT_WRAP(Windows::UI::Xaml::TextAlignment));
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignment, WINRT_WRAP(void), Windows::UI::Xaml::TextAlignment const&);
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(Windows::UI::Xaml::TextWrapping));
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(void), Windows::UI::Xaml::TextWrapping const&);
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSpellCheckEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSpellCheckEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSpellCheckEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSpellCheckEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSpellCheckEnabled, WINRT_WRAP(void), bool);
            this->shim().IsSpellCheckEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextPredictionEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextPredictionEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextPredictionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextPredictionEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextPredictionEnabled, WINRT_WRAP(void), bool);
            this->shim().IsTextPredictionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Document(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Document, WINRT_WRAP(Windows::UI::Text::ITextDocument));
            *value = detach_from<Windows::UI::Text::ITextDocument>(this->shim().Document());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InputScope(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScope, WINRT_WRAP(Windows::UI::Xaml::Input::InputScope));
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_InputScope(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScope, WINRT_WRAP(void), Windows::UI::Xaml::Input::InputScope const&);
            this->shim().InputScope(*reinterpret_cast<Windows::UI::Xaml::Input::InputScope const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_TextChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_TextChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TextChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_SelectionChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const&);
            *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 WINRT_CALL remove_ContextMenuOpening(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(void), hstring const&);
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocus, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocus, WINRT_WRAP(void), bool);
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorFontEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsColorFontEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabled, WINRT_WRAP(void), bool);
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Paste(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Paste, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::TextControlPasteEventHandler const&);
            *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 WINRT_CALL remove_Paste(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Paste, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL add_TextCompositionStarted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextCompositionStarted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const&);
            *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 WINRT_CALL remove_TextCompositionStarted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextCompositionStarted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TextCompositionStarted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_TextCompositionChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextCompositionChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const&);
            *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 WINRT_CALL remove_TextCompositionChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextCompositionChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TextCompositionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_TextCompositionEnded(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextCompositionEnded, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const&);
            *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 WINRT_CALL remove_TextCompositionEnded(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextCompositionEnded, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TextCompositionEnded(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(Windows::UI::Xaml::TextReadingOrder));
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(void), Windows::UI::Xaml::TextReadingOrder const&);
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DesiredCandidateWindowAlignment, WINRT_WRAP(Windows::UI::Xaml::Controls::CandidateWindowAlignment));
            *value = detach_from<Windows::UI::Xaml::Controls::CandidateWindowAlignment>(this->shim().DesiredCandidateWindowAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DesiredCandidateWindowAlignment, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CandidateWindowAlignment const&);
            this->shim().DesiredCandidateWindowAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::CandidateWindowAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CandidateWindowBoundsChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CandidateWindowBoundsChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const&);
            *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 WINRT_CALL remove_CandidateWindowBoundsChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CandidateWindowBoundsChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_TextChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const&);
            *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 WINRT_CALL remove_TextChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextChanging, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL GetLinguisticAlternativesAsync(void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetLinguisticAlternativesAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>));
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>>(this->shim().GetLinguisticAlternativesAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ClipboardCopyFormat(Windows::UI::Xaml::Controls::RichEditClipboardFormat* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClipboardCopyFormat, WINRT_WRAP(Windows::UI::Xaml::Controls::RichEditClipboardFormat));
            *value = detach_from<Windows::UI::Xaml::Controls::RichEditClipboardFormat>(this->shim().ClipboardCopyFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ClipboardCopyFormat(Windows::UI::Xaml::Controls::RichEditClipboardFormat value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClipboardCopyFormat, WINRT_WRAP(void), Windows::UI::Xaml::Controls::RichEditClipboardFormat const&);
            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 WINRT_CALL get_SelectionHighlightColorWhenNotFocused(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorWhenNotFocused, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColorWhenNotFocused());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionHighlightColorWhenNotFocused(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorWhenNotFocused, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            this->shim().SelectionHighlightColorWhenNotFocused(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLength, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxLength(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLength, WINRT_WRAP(void), int32_t);
            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 WINRT_CALL get_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignment, WINRT_WRAP(Windows::UI::Xaml::TextAlignment));
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignment, WINRT_WRAP(void), Windows::UI::Xaml::TextAlignment const&);
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterCasing, WINRT_WRAP(Windows::UI::Xaml::Controls::CharacterCasing));
            *value = detach_from<Windows::UI::Xaml::Controls::CharacterCasing>(this->shim().CharacterCasing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterCasing, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CharacterCasing const&);
            this->shim().CharacterCasing(*reinterpret_cast<Windows::UI::Xaml::Controls::CharacterCasing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisabledFormattingAccelerators(Windows::UI::Xaml::Controls::DisabledFormattingAccelerators* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledFormattingAccelerators, WINRT_WRAP(Windows::UI::Xaml::Controls::DisabledFormattingAccelerators));
            *value = detach_from<Windows::UI::Xaml::Controls::DisabledFormattingAccelerators>(this->shim().DisabledFormattingAccelerators());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisabledFormattingAccelerators(Windows::UI::Xaml::Controls::DisabledFormattingAccelerators value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledFormattingAccelerators, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DisabledFormattingAccelerators const&);
            this->shim().DisabledFormattingAccelerators(*reinterpret_cast<Windows::UI::Xaml::Controls::DisabledFormattingAccelerators const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CopyingToClipboard(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CopyingToClipboard, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const&);
            *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 WINRT_CALL remove_CopyingToClipboard(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CopyingToClipboard, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CopyingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_CuttingToClipboard(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CuttingToClipboard, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const&);
            *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 WINRT_CALL remove_CuttingToClipboard(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CuttingToClipboard, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_ContentLinkForegroundColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkForegroundColor, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().ContentLinkForegroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentLinkForegroundColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkForegroundColor, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            this->shim().ContentLinkForegroundColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentLinkBackgroundColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkBackgroundColor, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().ContentLinkBackgroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentLinkBackgroundColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkBackgroundColor, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            this->shim().ContentLinkBackgroundColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentLinkProviders(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkProviders, WINRT_WRAP(Windows::UI::Xaml::Documents::ContentLinkProviderCollection));
            *value = detach_from<Windows::UI::Xaml::Documents::ContentLinkProviderCollection>(this->shim().ContentLinkProviders());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ContentLinkProviders(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkProviders, WINRT_WRAP(void), Windows::UI::Xaml::Documents::ContentLinkProviderCollection const&);
            this->shim().ContentLinkProviders(*reinterpret_cast<Windows::UI::Xaml::Documents::ContentLinkProviderCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HandwritingView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HandwritingView, WINRT_WRAP(Windows::UI::Xaml::Controls::HandwritingView));
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().HandwritingView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HandwritingView(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HandwritingView, WINRT_WRAP(void), Windows::UI::Xaml::Controls::HandwritingView const&);
            this->shim().HandwritingView(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingView const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHandwritingViewEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHandwritingViewEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsHandwritingViewEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsHandwritingViewEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHandwritingViewEnabled, WINRT_WRAP(void), bool);
            this->shim().IsHandwritingViewEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ContentLinkChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const&);
            *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 WINRT_CALL remove_ContentLinkChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContentLinkChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ContentLinkChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ContentLinkInvoked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkInvoked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const&);
            *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 WINRT_CALL remove_ContentLinkInvoked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContentLinkInvoked, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_TextDocument(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextDocument, WINRT_WRAP(Windows::UI::Text::RichEditTextDocument));
            *value = detach_from<Windows::UI::Text::RichEditTextDocument>(this->shim().TextDocument());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionFlyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionFlyout(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::FlyoutBase const&);
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProofingMenuFlyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProofingMenuFlyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().ProofingMenuFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Description(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Description(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SelectionChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> const&);
            *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 WINRT_CALL remove_SelectionChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectionChanging, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::RichEditBox), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::RichEditBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_SelectionStart(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionStart, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionLength, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_IsReadOnlyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnlyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AcceptsReturnProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AcceptsReturnProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AcceptsReturnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrappingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSpellCheckEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSpellCheckEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSpellCheckEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextPredictionEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextPredictionEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextPredictionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InputScopeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScopeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorFontEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DesiredCandidateWindowAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DesiredCandidateWindowAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DesiredCandidateWindowAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ClipboardCopyFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClipboardCopyFormatProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectionHighlightColorWhenNotFocusedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorWhenNotFocusedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorWhenNotFocusedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HorizontalTextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterCasingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterCasingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterCasingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisabledFormattingAcceleratorsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisabledFormattingAcceleratorsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ContentLinkForegroundColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkForegroundColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkForegroundColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentLinkBackgroundColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkBackgroundColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkBackgroundColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentLinkProvidersProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLinkProvidersProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkProvidersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HandwritingViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HandwritingViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HandwritingViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHandwritingViewEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHandwritingViewEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectionFlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProofingMenuFlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProofingMenuFlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProofingMenuFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DescriptionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DescriptionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsContentChanging(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsContentChanging, WINRT_WRAP(bool));
            *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 WINRT_CALL get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(void), double);
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStretch(Windows::UI::Text::FontStretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretch, WINRT_WRAP(Windows::UI::Text::FontStretch));
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStretch(Windows::UI::Text::FontStretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretch, WINRT_WRAP(void), Windows::UI::Text::FontStretch const&);
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(Windows::UI::Xaml::TextWrapping));
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(void), Windows::UI::Xaml::TextWrapping const&);
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextTrimming(Windows::UI::Xaml::TextTrimming* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextTrimming, WINRT_WRAP(Windows::UI::Xaml::TextTrimming));
            *value = detach_from<Windows::UI::Xaml::TextTrimming>(this->shim().TextTrimming());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextTrimming(Windows::UI::Xaml::TextTrimming value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextTrimming, WINRT_WRAP(void), Windows::UI::Xaml::TextTrimming const&);
            this->shim().TextTrimming(*reinterpret_cast<Windows::UI::Xaml::TextTrimming const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignment, WINRT_WRAP(Windows::UI::Xaml::TextAlignment));
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignment, WINRT_WRAP(void), Windows::UI::Xaml::TextAlignment const&);
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Blocks(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Blocks, WINRT_WRAP(Windows::UI::Xaml::Documents::BlockCollection));
            *value = detach_from<Windows::UI::Xaml::Documents::BlockCollection>(this->shim().Blocks());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LineHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeight, WINRT_WRAP(void), double);
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategy, WINRT_WRAP(Windows::UI::Xaml::LineStackingStrategy));
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategy, WINRT_WRAP(void), Windows::UI::Xaml::LineStackingStrategy const&);
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterSpacing(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacing, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CharacterSpacing(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacing, WINRT_WRAP(void), int32_t);
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OverflowContentTarget(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowContentTarget, WINRT_WRAP(Windows::UI::Xaml::Controls::RichTextBlockOverflow));
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlockOverflow>(this->shim().OverflowContentTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OverflowContentTarget(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowContentTarget, WINRT_WRAP(void), Windows::UI::Xaml::Controls::RichTextBlockOverflow const&);
            this->shim().OverflowContentTarget(*reinterpret_cast<Windows::UI::Xaml::Controls::RichTextBlockOverflow const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextSelectionEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSelectionEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextSelectionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextSelectionEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSelectionEnabled, WINRT_WRAP(void), bool);
            this->shim().IsTextSelectionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HasOverflowContent(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasOverflowContent, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().HasOverflowContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentStart, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentEnd, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionStart, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionEnd, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BaselineOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BaselineOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_SelectionChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const&);
            *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 WINRT_CALL remove_ContextMenuOpening(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectAll, WINRT_WRAP(void));
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Select(void* start, void* end) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Select, WINRT_WRAP(void), Windows::UI::Xaml::Documents::TextPointer const&, Windows::UI::Xaml::Documents::TextPointer const&);
            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 WINRT_CALL GetPositionFromPoint(Windows::Foundation::Point point, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetPositionFromPoint, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer), Windows::Foundation::Point const&);
            *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 WINRT_CALL Focus(Windows::UI::Xaml::FocusState value, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Focus, WINRT_WRAP(bool), Windows::UI::Xaml::FocusState const&);
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextIndent(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextIndent, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().TextIndent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextIndent(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextIndent, WINRT_WRAP(void), double);
            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 WINRT_CALL get_MaxLines(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLines, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxLines(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLines, WINRT_WRAP(void), int32_t);
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextLineBounds(Windows::UI::Xaml::TextLineBounds* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBounds, WINRT_WRAP(Windows::UI::Xaml::TextLineBounds));
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextLineBounds(Windows::UI::Xaml::TextLineBounds value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBounds, WINRT_WRAP(void), Windows::UI::Xaml::TextLineBounds const&);
            this->shim().TextLineBounds(*reinterpret_cast<Windows::UI::Xaml::TextLineBounds const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignment, WINRT_WRAP(Windows::UI::Xaml::OpticalMarginAlignment));
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignment, WINRT_WRAP(void), Windows::UI::Xaml::OpticalMarginAlignment const&);
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorFontEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsColorFontEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabled, WINRT_WRAP(void), bool);
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(Windows::UI::Xaml::TextReadingOrder));
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(void), Windows::UI::Xaml::TextReadingOrder const&);
            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 WINRT_CALL get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_TextDecorations(Windows::UI::Text::TextDecorations* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextDecorations, WINRT_WRAP(Windows::UI::Text::TextDecorations));
            *value = detach_from<Windows::UI::Text::TextDecorations>(this->shim().TextDecorations());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextDecorations(Windows::UI::Text::TextDecorations value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextDecorations, WINRT_WRAP(void), Windows::UI::Text::TextDecorations const&);
            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 WINRT_CALL get_IsTextTrimmed(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmed, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignment, WINRT_WRAP(Windows::UI::Xaml::TextAlignment));
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignment, WINRT_WRAP(void), Windows::UI::Xaml::TextAlignment const&);
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextHighlighters(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextHighlighters, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>>(this->shim().TextHighlighters());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmedChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const&);
            *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 WINRT_CALL remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(IsTextTrimmedChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_SelectionFlyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionFlyout(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::FlyoutBase const&);
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL CopySelectionToClipboard() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CopySelectionToClipboard, WINRT_WRAP(void));
            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 WINRT_CALL get_OverflowContentTarget(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowContentTarget, WINRT_WRAP(Windows::UI::Xaml::Controls::RichTextBlockOverflow));
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlockOverflow>(this->shim().OverflowContentTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OverflowContentTarget(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowContentTarget, WINRT_WRAP(void), Windows::UI::Xaml::Controls::RichTextBlockOverflow const&);
            this->shim().OverflowContentTarget(*reinterpret_cast<Windows::UI::Xaml::Controls::RichTextBlockOverflow const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentSource, WINRT_WRAP(Windows::UI::Xaml::Controls::RichTextBlock));
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlock>(this->shim().ContentSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HasOverflowContent(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasOverflowContent, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().HasOverflowContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentStart, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentEnd, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BaselineOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BaselineOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetPositionFromPoint(Windows::Foundation::Point point, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetPositionFromPoint, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer), Windows::Foundation::Point const&);
            *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 WINRT_CALL Focus(Windows::UI::Xaml::FocusState value, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Focus, WINRT_WRAP(bool), Windows::UI::Xaml::FocusState const&);
            *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 WINRT_CALL get_MaxLines(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLines, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxLines(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLines, WINRT_WRAP(void), int32_t);
            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 WINRT_CALL get_IsTextTrimmed(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmed, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmedChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlockOverflow, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const&);
            *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 WINRT_CALL remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(IsTextTrimmedChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_OverflowContentTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowContentTargetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowContentTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HasOverflowContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasOverflowContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_MaxLinesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLinesProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsTextTrimmedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrappingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextTrimmingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextTrimmingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextTrimmingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineStackingStrategyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OverflowContentTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OverflowContentTargetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowContentTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextSelectionEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSelectionEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSelectionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HasOverflowContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasOverflowContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasOverflowContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextIndentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextIndentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_MaxLinesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLinesProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextLineBoundsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBoundsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OpticalMarginAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorFontEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_TextDecorationsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextDecorationsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsTextTrimmedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalTextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectionFlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Height(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Height, WINRT_WRAP(Windows::UI::Xaml::GridLength));
            *value = detach_from<Windows::UI::Xaml::GridLength>(this->shim().Height());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Height(struct struct_Windows_UI_Xaml_GridLength value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Height, WINRT_WRAP(void), Windows::UI::Xaml::GridLength const&);
            this->shim().Height(*reinterpret_cast<Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MaxHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHeight, WINRT_WRAP(void), double);
            this->shim().MaxHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().MinHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinHeight, WINRT_WRAP(void), double);
            this->shim().MinHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ActualHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ActualHeight, WINRT_WRAP(double));
            *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 WINRT_CALL get_HeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CurrentAnchor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CurrentAnchor, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().CurrentAnchor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL RegisterAnchorCandidate(void* element) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RegisterAnchorCandidate, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().RegisterAnchorCandidate(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL UnregisterAnchorCandidate(void* element) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnregisterAnchorCandidate, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            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 WINRT_CALL get_CanVerticallyScroll(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanVerticallyScroll, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanVerticallyScroll());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanVerticallyScroll(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanVerticallyScroll, WINRT_WRAP(void), bool);
            this->shim().CanVerticallyScroll(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanHorizontallyScroll(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanHorizontallyScroll, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanHorizontallyScroll());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanHorizontallyScroll(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanHorizontallyScroll, WINRT_WRAP(void), bool);
            this->shim().CanHorizontallyScroll(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExtentWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExtentWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ExtentWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExtentHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExtentHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ExtentHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ViewportWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewportWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ViewportWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ViewportHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewportHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ViewportHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ScrollOwner(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollOwner, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ScrollOwner());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ScrollOwner(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollOwner, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().ScrollOwner(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL LineUp() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineUp, WINRT_WRAP(void));
            this->shim().LineUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL LineDown() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineDown, WINRT_WRAP(void));
            this->shim().LineDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL LineLeft() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineLeft, WINRT_WRAP(void));
            this->shim().LineLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL LineRight() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineRight, WINRT_WRAP(void));
            this->shim().LineRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL PageUp() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PageUp, WINRT_WRAP(void));
            this->shim().PageUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL PageDown() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PageDown, WINRT_WRAP(void));
            this->shim().PageDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL PageLeft() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PageLeft, WINRT_WRAP(void));
            this->shim().PageLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL PageRight() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PageRight, WINRT_WRAP(void));
            this->shim().PageRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL MouseWheelUp() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MouseWheelUp, WINRT_WRAP(void));
            this->shim().MouseWheelUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL MouseWheelDown() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MouseWheelDown, WINRT_WRAP(void));
            this->shim().MouseWheelDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL MouseWheelLeft() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MouseWheelLeft, WINRT_WRAP(void));
            this->shim().MouseWheelLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL MouseWheelRight() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MouseWheelRight, WINRT_WRAP(void));
            this->shim().MouseWheelRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetHorizontalOffset(double offset) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetHorizontalOffset, WINRT_WRAP(void), double);
            this->shim().SetHorizontalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetVerticalOffset(double offset) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetVerticalOffset, WINRT_WRAP(void), double);
            this->shim().SetVerticalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL MakeVisible(void* visual, Windows::Foundation::Rect rectangle, Windows::Foundation::Rect* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MakeVisible, WINRT_WRAP(Windows::Foundation::Rect), Windows::UI::Xaml::UIElement const&, Windows::Foundation::Rect const&);
            *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 WINRT_CALL get_CanContentRenderOutsideBounds(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanContentRenderOutsideBounds, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanContentRenderOutsideBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanContentRenderOutsideBounds(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanContentRenderOutsideBounds, WINRT_WRAP(void), bool);
            this->shim().CanContentRenderOutsideBounds(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SizesContentToTemplatedParent(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SizesContentToTemplatedParent, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().SizesContentToTemplatedParent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SizesContentToTemplatedParent(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SizesContentToTemplatedParent, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_CanContentRenderOutsideBoundsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanContentRenderOutsideBoundsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanContentRenderOutsideBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SizesContentToTemplatedParentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SizesContentToTemplatedParentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HorizontalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalScrollBarVisibility, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollBarVisibility));
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().HorizontalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalScrollBarVisibility, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ScrollBarVisibility const&);
            this->shim().HorizontalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalScrollBarVisibility, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollBarVisibility));
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().VerticalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalScrollBarVisibility, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ScrollBarVisibility const&);
            this->shim().VerticalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHorizontalRailEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalRailEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsHorizontalRailEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsHorizontalRailEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalRailEnabled, WINRT_WRAP(void), bool);
            this->shim().IsHorizontalRailEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVerticalRailEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalRailEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsVerticalRailEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsVerticalRailEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalRailEnabled, WINRT_WRAP(void), bool);
            this->shim().IsVerticalRailEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHorizontalScrollChainingEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalScrollChainingEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsHorizontalScrollChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsHorizontalScrollChainingEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalScrollChainingEnabled, WINRT_WRAP(void), bool);
            this->shim().IsHorizontalScrollChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVerticalScrollChainingEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalScrollChainingEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsVerticalScrollChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsVerticalScrollChainingEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalScrollChainingEnabled, WINRT_WRAP(void), bool);
            this->shim().IsVerticalScrollChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomChainingEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomChainingEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsZoomChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsZoomChainingEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomChainingEnabled, WINRT_WRAP(void), bool);
            this->shim().IsZoomChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsScrollInertiaEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsScrollInertiaEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsScrollInertiaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsScrollInertiaEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsScrollInertiaEnabled, WINRT_WRAP(void), bool);
            this->shim().IsScrollInertiaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomInertiaEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomInertiaEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsZoomInertiaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsZoomInertiaEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomInertiaEnabled, WINRT_WRAP(void), bool);
            this->shim().IsZoomInertiaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalScrollMode(Windows::UI::Xaml::Controls::ScrollMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalScrollMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollMode));
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().HorizontalScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalScrollMode(Windows::UI::Xaml::Controls::ScrollMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalScrollMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ScrollMode const&);
            this->shim().HorizontalScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalScrollMode(Windows::UI::Xaml::Controls::ScrollMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalScrollMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollMode));
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().VerticalScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalScrollMode(Windows::UI::Xaml::Controls::ScrollMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalScrollMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ScrollMode const&);
            this->shim().VerticalScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomMode(Windows::UI::Xaml::Controls::ZoomMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ZoomMode));
            *value = detach_from<Windows::UI::Xaml::Controls::ZoomMode>(this->shim().ZoomMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ZoomMode(Windows::UI::Xaml::Controls::ZoomMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ZoomMode const&);
            this->shim().ZoomMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ZoomMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSnapPointsAlignment, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>(this->shim().HorizontalSnapPointsAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSnapPointsAlignment, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const&);
            this->shim().HorizontalSnapPointsAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSnapPointsAlignment, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>(this->shim().VerticalSnapPointsAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSnapPointsAlignment, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const&);
            this->shim().VerticalSnapPointsAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSnapPointsType, WINRT_WRAP(Windows::UI::Xaml::Controls::SnapPointsType));
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().HorizontalSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSnapPointsType, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SnapPointsType const&);
            this->shim().HorizontalSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSnapPointsType, WINRT_WRAP(Windows::UI::Xaml::Controls::SnapPointsType));
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().VerticalSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSnapPointsType, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SnapPointsType const&);
            this->shim().VerticalSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomSnapPointsType, WINRT_WRAP(Windows::UI::Xaml::Controls::SnapPointsType));
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().ZoomSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ZoomSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomSnapPointsType, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SnapPointsType const&);
            this->shim().ZoomSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ViewportWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewportWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ViewportWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ScrollableWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollableWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ScrollableWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ComputedHorizontalScrollBarVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ComputedHorizontalScrollBarVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ComputedHorizontalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExtentWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExtentWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ExtentWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ViewportHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewportHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ViewportHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ScrollableHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollableHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ScrollableHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ComputedVerticalScrollBarVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ComputedVerticalScrollBarVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ComputedVerticalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExtentHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExtentHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ExtentHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinZoomFactor(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinZoomFactor, WINRT_WRAP(float));
            *value = detach_from<float>(this->shim().MinZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinZoomFactor(float value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinZoomFactor, WINRT_WRAP(void), float);
            this->shim().MinZoomFactor(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxZoomFactor(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxZoomFactor, WINRT_WRAP(float));
            *value = detach_from<float>(this->shim().MaxZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxZoomFactor(float value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxZoomFactor, WINRT_WRAP(void), float);
            this->shim().MaxZoomFactor(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomFactor(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomFactor, WINRT_WRAP(float));
            *value = detach_from<float>(this->shim().ZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomSnapPoints(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomSnapPoints, WINRT_WRAP(Windows::Foundation::Collections::IVector<float>));
            *value = detach_from<Windows::Foundation::Collections::IVector<float>>(this->shim().ZoomSnapPoints());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ViewChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const&);
            *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 WINRT_CALL remove_ViewChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ViewChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ViewChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ScrollToHorizontalOffset(double offset) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollToHorizontalOffset, WINRT_WRAP(void), double);
            this->shim().ScrollToHorizontalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ScrollToVerticalOffset(double offset) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollToVerticalOffset, WINRT_WRAP(void), double);
            this->shim().ScrollToVerticalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ZoomToFactor(float factor) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomToFactor, WINRT_WRAP(void), float);
            this->shim().ZoomToFactor(factor);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL InvalidateScrollInfo() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InvalidateScrollInfo, WINRT_WRAP(void));
            this->shim().InvalidateScrollInfo();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsDeferredScrollingEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDeferredScrollingEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsDeferredScrollingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsDeferredScrollingEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDeferredScrollingEnabled, WINRT_WRAP(void), bool);
            this->shim().IsDeferredScrollingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BringIntoViewOnFocusChange(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BringIntoViewOnFocusChange, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().BringIntoViewOnFocusChange());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BringIntoViewOnFocusChange(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BringIntoViewOnFocusChange, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_TopLeftHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopLeftHeader, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().TopLeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TopLeftHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopLeftHeader, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().TopLeftHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LeftHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeader, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().LeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LeftHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeader, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().LeftHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopHeader, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().TopHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TopHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopHeader, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().TopHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ViewChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const&);
            *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 WINRT_CALL remove_ViewChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ViewChanging, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ViewChanging(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ChangeView(void* horizontalOffset, void* verticalOffset, void* zoomFactor, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChangeView, WINRT_WRAP(bool), Windows::Foundation::IReference<double> const&, Windows::Foundation::IReference<double> const&, Windows::Foundation::IReference<float> const&);
            *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 WINRT_CALL ChangeViewWithOptionalAnimation(void* horizontalOffset, void* verticalOffset, void* zoomFactor, bool disableAnimation, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChangeView, WINRT_WRAP(bool), Windows::Foundation::IReference<double> const&, Windows::Foundation::IReference<double> const&, Windows::Foundation::IReference<float> const&, bool);
            *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 WINRT_CALL add_DirectManipulationStarted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DirectManipulationStarted, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_DirectManipulationStarted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DirectManipulationStarted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DirectManipulationStarted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_DirectManipulationCompleted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DirectManipulationCompleted, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_DirectManipulationCompleted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DirectManipulationCompleted, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_ReduceViewportForCoreInputViewOcclusions(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ReduceViewportForCoreInputViewOcclusions, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ReduceViewportForCoreInputViewOcclusions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ReduceViewportForCoreInputViewOcclusions(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ReduceViewportForCoreInputViewOcclusions, WINRT_WRAP(void), bool);
            this->shim().ReduceViewportForCoreInputViewOcclusions(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalAnchorRatio(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalAnchorRatio, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().HorizontalAnchorRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalAnchorRatio(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalAnchorRatio, WINRT_WRAP(void), double);
            this->shim().HorizontalAnchorRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalAnchorRatio(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalAnchorRatio, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().VerticalAnchorRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalAnchorRatio(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalAnchorRatio, WINRT_WRAP(void), double);
            this->shim().VerticalAnchorRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanContentRenderOutsideBounds(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanContentRenderOutsideBounds, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanContentRenderOutsideBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanContentRenderOutsideBounds(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanContentRenderOutsideBounds, WINRT_WRAP(void), bool);
            this->shim().CanContentRenderOutsideBounds(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_AnchorRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AnchorRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ScrollViewer, Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> const&);
            *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 WINRT_CALL remove_AnchorRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(AnchorRequested, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_HorizontalSnapPointsAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSnapPointsAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSnapPointsAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSnapPointsAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSnapPointsAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSnapPointsAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalSnapPointsTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalSnapPointsTypeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalSnapPointsTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalSnapPointsTypeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomSnapPointsTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomSnapPointsTypeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ViewportWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewportWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ViewportWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ScrollableWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollableWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ScrollableWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ComputedHorizontalScrollBarVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ComputedHorizontalScrollBarVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ComputedHorizontalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExtentWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExtentWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExtentWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ViewportHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewportHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ViewportHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ScrollableHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScrollableHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ScrollableHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ComputedVerticalScrollBarVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ComputedVerticalScrollBarVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ComputedVerticalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExtentHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExtentHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExtentHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinZoomFactorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinZoomFactorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxZoomFactorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxZoomFactorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomFactorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomFactorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomSnapPointsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomSnapPointsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomSnapPointsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalScrollBarVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalScrollBarVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetHorizontalScrollBarVisibility(void* element, Windows::UI::Xaml::Controls::ScrollBarVisibility* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetHorizontalScrollBarVisibility, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollBarVisibility), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetHorizontalScrollBarVisibility(void* element, Windows::UI::Xaml::Controls::ScrollBarVisibility horizontalScrollBarVisibility) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetHorizontalScrollBarVisibility, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::UI::Xaml::Controls::ScrollBarVisibility const&);
            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 WINRT_CALL get_VerticalScrollBarVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalScrollBarVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetVerticalScrollBarVisibility(void* element, Windows::UI::Xaml::Controls::ScrollBarVisibility* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetVerticalScrollBarVisibility, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollBarVisibility), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetVerticalScrollBarVisibility(void* element, Windows::UI::Xaml::Controls::ScrollBarVisibility verticalScrollBarVisibility) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetVerticalScrollBarVisibility, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::UI::Xaml::Controls::ScrollBarVisibility const&);
            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 WINRT_CALL get_IsHorizontalRailEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalRailEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalRailEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsHorizontalRailEnabled(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsHorizontalRailEnabled, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsHorizontalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsHorizontalRailEnabled(void* element, bool isHorizontalRailEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsHorizontalRailEnabled, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            this->shim().SetIsHorizontalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isHorizontalRailEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVerticalRailEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalRailEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalRailEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsVerticalRailEnabled(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsVerticalRailEnabled, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsVerticalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsVerticalRailEnabled(void* element, bool isVerticalRailEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsVerticalRailEnabled, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            this->shim().SetIsVerticalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isVerticalRailEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHorizontalScrollChainingEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHorizontalScrollChainingEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalScrollChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsHorizontalScrollChainingEnabled(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsHorizontalScrollChainingEnabled, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsHorizontalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsHorizontalScrollChainingEnabled(void* element, bool isHorizontalScrollChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsHorizontalScrollChainingEnabled, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            this->shim().SetIsHorizontalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isHorizontalScrollChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsVerticalScrollChainingEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVerticalScrollChainingEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalScrollChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsVerticalScrollChainingEnabled(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsVerticalScrollChainingEnabled, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsVerticalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsVerticalScrollChainingEnabled(void* element, bool isVerticalScrollChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsVerticalScrollChainingEnabled, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            this->shim().SetIsVerticalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isVerticalScrollChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomChainingEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomChainingEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsZoomChainingEnabled(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsZoomChainingEnabled, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsZoomChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsZoomChainingEnabled(void* element, bool isZoomChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsZoomChainingEnabled, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            this->shim().SetIsZoomChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isZoomChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsScrollInertiaEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsScrollInertiaEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsScrollInertiaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsScrollInertiaEnabled(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsScrollInertiaEnabled, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsScrollInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsScrollInertiaEnabled(void* element, bool isScrollInertiaEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsScrollInertiaEnabled, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            this->shim().SetIsScrollInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isScrollInertiaEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomInertiaEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomInertiaEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomInertiaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsZoomInertiaEnabled(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsZoomInertiaEnabled, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsZoomInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsZoomInertiaEnabled(void* element, bool isZoomInertiaEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsZoomInertiaEnabled, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            this->shim().SetIsZoomInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isZoomInertiaEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalScrollModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalScrollModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalScrollModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetHorizontalScrollMode(void* element, Windows::UI::Xaml::Controls::ScrollMode* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetHorizontalScrollMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollMode), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetHorizontalScrollMode(void* element, Windows::UI::Xaml::Controls::ScrollMode horizontalScrollMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetHorizontalScrollMode, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::UI::Xaml::Controls::ScrollMode const&);
            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 WINRT_CALL get_VerticalScrollModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalScrollModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalScrollModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetVerticalScrollMode(void* element, Windows::UI::Xaml::Controls::ScrollMode* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetVerticalScrollMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollMode), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetVerticalScrollMode(void* element, Windows::UI::Xaml::Controls::ScrollMode verticalScrollMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetVerticalScrollMode, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::UI::Xaml::Controls::ScrollMode const&);
            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 WINRT_CALL get_ZoomModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetZoomMode(void* element, Windows::UI::Xaml::Controls::ZoomMode* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetZoomMode, WINRT_WRAP(Windows::UI::Xaml::Controls::ZoomMode), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetZoomMode(void* element, Windows::UI::Xaml::Controls::ZoomMode zoomMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetZoomMode, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::UI::Xaml::Controls::ZoomMode const&);
            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 WINRT_CALL get_IsDeferredScrollingEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDeferredScrollingEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDeferredScrollingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsDeferredScrollingEnabled(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsDeferredScrollingEnabled, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetIsDeferredScrollingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetIsDeferredScrollingEnabled(void* element, bool isDeferredScrollingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetIsDeferredScrollingEnabled, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            this->shim().SetIsDeferredScrollingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isDeferredScrollingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BringIntoViewOnFocusChangeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BringIntoViewOnFocusChangeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BringIntoViewOnFocusChangeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetBringIntoViewOnFocusChange(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetBringIntoViewOnFocusChange, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetBringIntoViewOnFocusChange(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetBringIntoViewOnFocusChange(void* element, bool bringIntoViewOnFocusChange) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetBringIntoViewOnFocusChange, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            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 WINRT_CALL get_TopLeftHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopLeftHeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopLeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LeftHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftHeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopHeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ReduceViewportForCoreInputViewOcclusionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ReduceViewportForCoreInputViewOcclusionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ReduceViewportForCoreInputViewOcclusionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalAnchorRatioProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalAnchorRatioProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalAnchorRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalAnchorRatioProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalAnchorRatioProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalAnchorRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanContentRenderOutsideBoundsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanContentRenderOutsideBoundsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanContentRenderOutsideBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetCanContentRenderOutsideBounds(void* element, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetCanContentRenderOutsideBounds, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *result = detach_from<bool>(this->shim().GetCanContentRenderOutsideBounds(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetCanContentRenderOutsideBounds(void* element, bool canContentRenderOutsideBounds) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetCanContentRenderOutsideBounds, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, bool);
            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 WINRT_CALL get_HorizontalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomFactor(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomFactor, WINRT_WRAP(float));
            *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 WINRT_CALL get_IsIntermediate(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsIntermediate, WINRT_WRAP(bool));
            *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 WINRT_CALL get_NextView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NextView, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollViewerView));
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollViewerView>(this->shim().NextView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FinalView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FinalView, WINRT_WRAP(Windows::UI::Xaml::Controls::ScrollViewerView));
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollViewerView>(this->shim().FinalView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsInertial(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsInertial, WINRT_WRAP(bool));
            *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 WINRT_CALL get_SearchHistoryEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SearchHistoryEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().SearchHistoryEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SearchHistoryEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SearchHistoryEnabled, WINRT_WRAP(void), bool);
            this->shim().SearchHistoryEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SearchHistoryContext(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SearchHistoryContext, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().SearchHistoryContext());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SearchHistoryContext(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SearchHistoryContext, WINRT_WRAP(void), hstring const&);
            this->shim().SearchHistoryContext(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(void), hstring const&);
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_QueryText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_QueryText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryText, WINRT_WRAP(void), hstring const&);
            this->shim().QueryText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FocusOnKeyboardInput(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusOnKeyboardInput, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().FocusOnKeyboardInput());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FocusOnKeyboardInput(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusOnKeyboardInput, WINRT_WRAP(void), bool);
            this->shim().FocusOnKeyboardInput(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ChooseSuggestionOnEnter(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChooseSuggestionOnEnter, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ChooseSuggestionOnEnter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ChooseSuggestionOnEnter(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChooseSuggestionOnEnter, WINRT_WRAP(void), bool);
            this->shim().ChooseSuggestionOnEnter(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_QueryChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const&);
            *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 WINRT_CALL remove_QueryChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(QueryChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().QueryChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_SuggestionsRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SuggestionsRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const&);
            *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 WINRT_CALL remove_SuggestionsRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SuggestionsRequested, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SuggestionsRequested(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_QuerySubmitted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QuerySubmitted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const&);
            *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 WINRT_CALL remove_QuerySubmitted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(QuerySubmitted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().QuerySubmitted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ResultSuggestionChosen(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ResultSuggestionChosen, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const&);
            *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 WINRT_CALL remove_ResultSuggestionChosen(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ResultSuggestionChosen, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ResultSuggestionChosen(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PrepareForFocusOnKeyboardInput(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PrepareForFocusOnKeyboardInput, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::RoutedEventArgs> const&);
            *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 WINRT_CALL remove_PrepareForFocusOnKeyboardInput(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PrepareForFocusOnKeyboardInput, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PrepareForFocusOnKeyboardInput(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SetLocalContentSuggestionSettings(void* settings) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetLocalContentSuggestionSettings, WINRT_WRAP(void), Windows::ApplicationModel::Search::LocalContentSuggestionSettings const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SearchBox), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SearchBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_QueryText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Language(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Language, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LinguisticDetails(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LinguisticDetails, WINRT_WRAP(Windows::ApplicationModel::Search::SearchQueryLinguisticDetails));
            *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 WINRT_CALL get_QueryText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Language(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Language, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LinguisticDetails(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LinguisticDetails, WINRT_WRAP(Windows::ApplicationModel::Search::SearchQueryLinguisticDetails));
            *value = detach_from<Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_KeyModifiers(Windows::System::VirtualKeyModifiers* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyModifiers, WINRT_WRAP(Windows::System::VirtualKeyModifiers));
            *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 WINRT_CALL get_Tag(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Tag, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Tag());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_KeyModifiers(Windows::System::VirtualKeyModifiers* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(KeyModifiers, WINRT_WRAP(Windows::System::VirtualKeyModifiers));
            *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 WINRT_CALL get_SearchHistoryEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SearchHistoryEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SearchHistoryEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SearchHistoryContextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SearchHistoryContextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SearchHistoryContextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_QueryTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().QueryTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FocusOnKeyboardInputProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FocusOnKeyboardInputProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FocusOnKeyboardInputProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ChooseSuggestionOnEnterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ChooseSuggestionOnEnterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_QueryText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(QueryText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Language(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Language, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LinguisticDetails(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LinguisticDetails, WINRT_WRAP(Windows::ApplicationModel::Search::SearchQueryLinguisticDetails));
            *value = detach_from<Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Request(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Request, WINRT_WRAP(Windows::ApplicationModel::Search::SearchSuggestionsRequest));
            *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 WINRT_CALL get_AddedSections(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AddedSections, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().AddedSections());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RemovedSections(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RemovedSections, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>));
            *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 WINRT_CALL get_AddedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AddedItems, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().AddedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RemovedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RemovedItems, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *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 WINRT_CALL CreateInstanceWithRemovedItemsAndAddedItems(void* removedItems, void* addedItems, void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstanceWithRemovedItemsAndAddedItems, WINRT_WRAP(Windows::UI::Xaml::Controls::SelectionChangedEventArgs), Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> const&, Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> const&, Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *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), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ZoomedInView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomedInView, WINRT_WRAP(Windows::UI::Xaml::Controls::ISemanticZoomInformation));
            *value = detach_from<Windows::UI::Xaml::Controls::ISemanticZoomInformation>(this->shim().ZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ZoomedInView(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomedInView, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ISemanticZoomInformation const&);
            this->shim().ZoomedInView(*reinterpret_cast<Windows::UI::Xaml::Controls::ISemanticZoomInformation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomedOutView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomedOutView, WINRT_WRAP(Windows::UI::Xaml::Controls::ISemanticZoomInformation));
            *value = detach_from<Windows::UI::Xaml::Controls::ISemanticZoomInformation>(this->shim().ZoomedOutView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ZoomedOutView(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomedOutView, WINRT_WRAP(void), Windows::UI::Xaml::Controls::ISemanticZoomInformation const&);
            this->shim().ZoomedOutView(*reinterpret_cast<Windows::UI::Xaml::Controls::ISemanticZoomInformation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomedInViewActive(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomedInViewActive, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsZoomedInViewActive());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsZoomedInViewActive(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomedInViewActive, WINRT_WRAP(void), bool);
            this->shim().IsZoomedInViewActive(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanChangeViews(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanChangeViews, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanChangeViews());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanChangeViews(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanChangeViews, WINRT_WRAP(void), bool);
            this->shim().CanChangeViews(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ViewChangeStarted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewChangeStarted, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const&);
            *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 WINRT_CALL remove_ViewChangeStarted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ViewChangeStarted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ViewChangeStarted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ViewChangeCompleted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ViewChangeCompleted, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const&);
            *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 WINRT_CALL remove_ViewChangeCompleted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ViewChangeCompleted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ViewChangeCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ToggleActiveView() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ToggleActiveView, WINRT_WRAP(void));
            this->shim().ToggleActiveView();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomOutButtonEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomOutButtonEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsZoomOutButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsZoomOutButtonEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomOutButtonEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_SemanticZoomOwner(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SemanticZoomOwner, WINRT_WRAP(Windows::UI::Xaml::Controls::SemanticZoom));
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoom>(this->shim().SemanticZoomOwner());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SemanticZoomOwner(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SemanticZoomOwner, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SemanticZoom const&);
            this->shim().SemanticZoomOwner(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoom const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsActiveView(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsActiveView, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsActiveView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsActiveView(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsActiveView, WINRT_WRAP(void), bool);
            this->shim().IsActiveView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomedInView(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomedInView, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsZoomedInView(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomedInView, WINRT_WRAP(void), bool);
            this->shim().IsZoomedInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL InitializeViewChange() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InitializeViewChange, WINRT_WRAP(void));
            this->shim().InitializeViewChange();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL CompleteViewChange() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompleteViewChange, WINRT_WRAP(void));
            this->shim().CompleteViewChange();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL MakeVisible(void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MakeVisible, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SemanticZoomLocation const&);
            this->shim().MakeVisible(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL StartViewChangeFrom(void* source, void* destination) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StartViewChangeFrom, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SemanticZoomLocation const&, Windows::UI::Xaml::Controls::SemanticZoomLocation const&);
            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 WINRT_CALL StartViewChangeTo(void* source, void* destination) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StartViewChangeTo, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SemanticZoomLocation const&, Windows::UI::Xaml::Controls::SemanticZoomLocation const&);
            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 WINRT_CALL CompleteViewChangeFrom(void* source, void* destination) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompleteViewChangeFrom, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SemanticZoomLocation const&, Windows::UI::Xaml::Controls::SemanticZoomLocation const&);
            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 WINRT_CALL CompleteViewChangeTo(void* source, void* destination) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompleteViewChangeTo, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SemanticZoomLocation const&, Windows::UI::Xaml::Controls::SemanticZoomLocation const&);
            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 WINRT_CALL get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Item(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Item(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Bounds(Windows::Foundation::Rect* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Bounds, WINRT_WRAP(Windows::Foundation::Rect));
            *value = detach_from<Windows::Foundation::Rect>(this->shim().Bounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Bounds(Windows::Foundation::Rect value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Bounds, WINRT_WRAP(void), Windows::Foundation::Rect const&);
            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 WINRT_CALL get_ZoomedInViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomedInViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomedInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ZoomedOutViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ZoomedOutViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomedOutViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomedInViewActiveProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomedInViewActiveProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewActiveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanChangeViewsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanChangeViewsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanChangeViewsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsZoomOutButtonEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsZoomOutButtonEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsSourceZoomedInView(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSourceZoomedInView, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSourceZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSourceZoomedInView(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSourceZoomedInView, WINRT_WRAP(void), bool);
            this->shim().IsSourceZoomedInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SourceItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceItem, WINRT_WRAP(Windows::UI::Xaml::Controls::SemanticZoomLocation));
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoomLocation>(this->shim().SourceItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SourceItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceItem, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SemanticZoomLocation const&);
            this->shim().SourceItem(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DestinationItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DestinationItem, WINRT_WRAP(Windows::UI::Xaml::Controls::SemanticZoomLocation));
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoomLocation>(this->shim().DestinationItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DestinationItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DestinationItem, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SemanticZoomLocation const&);
            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 WINRT_CALL get_Title(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Title, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Title(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Title, WINRT_WRAP(void), hstring const&);
            this->shim().Title(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderBackground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderBackground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HeaderBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderBackground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderBackground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().HeaderBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HeaderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().HeaderForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IconSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSource, WINRT_WRAP(Windows::UI::Xaml::Media::ImageSource));
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IconSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSource, WINRT_WRAP(void), Windows::UI::Xaml::Media::ImageSource const&);
            this->shim().IconSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_BackClick(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackClick, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::BackClickEventHandler const&);
            *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 WINRT_CALL remove_BackClick(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(BackClick, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().BackClick(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL Show() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Show, WINRT_WRAP(void));
            this->shim().Show();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ShowIndependent() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowIndependent, WINRT_WRAP(void));
            this->shim().ShowIndependent();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Hide() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Hide, WINRT_WRAP(void));
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SettingsFlyout), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SettingsFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_TitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TitleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderBackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderBackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IconSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IntermediateValue(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IntermediateValue, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().IntermediateValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IntermediateValue(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IntermediateValue, WINRT_WRAP(void), double);
            this->shim().IntermediateValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StepFrequency(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StepFrequency, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().StepFrequency());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_StepFrequency(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StepFrequency, WINRT_WRAP(void), double);
            this->shim().StepFrequency(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SnapsTo(Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SnapsTo, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo>(this->shim().SnapsTo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SnapsTo(Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SnapsTo, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo const&);
            this->shim().SnapsTo(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TickFrequency(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TickFrequency, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().TickFrequency());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TickFrequency(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TickFrequency, WINRT_WRAP(void), double);
            this->shim().TickFrequency(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TickPlacement(Windows::UI::Xaml::Controls::Primitives::TickPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TickPlacement, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::TickPlacement));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::TickPlacement>(this->shim().TickPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TickPlacement(Windows::UI::Xaml::Controls::Primitives::TickPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TickPlacement, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::TickPlacement const&);
            this->shim().TickPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::TickPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsDirectionReversed(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDirectionReversed, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsDirectionReversed());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsDirectionReversed(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDirectionReversed, WINRT_WRAP(void), bool);
            this->shim().IsDirectionReversed(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsThumbToolTipEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsThumbToolTipEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsThumbToolTipEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsThumbToolTipEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsThumbToolTipEnabled, WINRT_WRAP(void), bool);
            this->shim().IsThumbToolTipEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ThumbToolTipValueConverter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ThumbToolTipValueConverter, WINRT_WRAP(Windows::UI::Xaml::Data::IValueConverter));
            *value = detach_from<Windows::UI::Xaml::Data::IValueConverter>(this->shim().ThumbToolTipValueConverter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ThumbToolTipValueConverter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ThumbToolTipValueConverter, WINRT_WRAP(void), Windows::UI::Xaml::Data::IValueConverter const&);
            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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::Slider), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::Slider>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IntermediateValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IntermediateValueProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IntermediateValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StepFrequencyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StepFrequencyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StepFrequencyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SnapsToProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SnapsToProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SnapsToProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TickFrequencyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TickFrequencyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TickFrequencyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TickPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TickPlacementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TickPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsDirectionReversedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsDirectionReversedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDirectionReversedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsThumbToolTipEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsThumbToolTipEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsThumbToolTipEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ThumbToolTipValueConverterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ThumbToolTipValueConverterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Flyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Flyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().Flyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Flyout(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Flyout, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::FlyoutBase const&);
            this->shim().Flyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Command(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Command, WINRT_WRAP(Windows::UI::Xaml::Input::ICommand));
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Command(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Command, WINRT_WRAP(void), Windows::UI::Xaml::Input::ICommand const&);
            this->shim().Command(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameter, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameter, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().CommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Click(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Click, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitButton, Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> const&);
            *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 WINRT_CALL remove_Click(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Click, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* owner, void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SplitButtonAutomationPeer), Windows::UI::Xaml::Controls::SplitButton const&, Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *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), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SplitButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SplitButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_FlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Pane(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Pane, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Pane());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Pane(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Pane, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Pane(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPaneOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneOpen, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsPaneOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsPaneOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneOpen, WINRT_WRAP(void), bool);
            this->shim().IsPaneOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OpenPaneLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpenPaneLength, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().OpenPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OpenPaneLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpenPaneLength, WINRT_WRAP(void), double);
            this->shim().OpenPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompactPaneLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactPaneLength, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CompactPaneLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactPaneLength, WINRT_WRAP(void), double);
            this->shim().CompactPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PanePlacement(Windows::UI::Xaml::Controls::SplitViewPanePlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PanePlacement, WINRT_WRAP(Windows::UI::Xaml::Controls::SplitViewPanePlacement));
            *value = detach_from<Windows::UI::Xaml::Controls::SplitViewPanePlacement>(this->shim().PanePlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PanePlacement(Windows::UI::Xaml::Controls::SplitViewPanePlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PanePlacement, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SplitViewPanePlacement const&);
            this->shim().PanePlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::SplitViewPanePlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayMode(Windows::UI::Xaml::Controls::SplitViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::SplitViewDisplayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::SplitViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DisplayMode(Windows::UI::Xaml::Controls::SplitViewDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SplitViewDisplayMode const&);
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::SplitViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneBackground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneBackground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PaneBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PaneBackground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneBackground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().PaneBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_PaneClosing(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneClosing, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const&);
            *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 WINRT_CALL remove_PaneClosing(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PaneClosing, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PaneClosing(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PaneClosed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneClosed, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_PaneClosed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PaneClosed, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::LightDismissOverlayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::LightDismissOverlayMode const&);
            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 WINRT_CALL add_PaneOpening(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneOpening, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_PaneOpening(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PaneOpening, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PaneOpening(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PaneOpened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneOpened, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_PaneOpened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PaneOpened, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SplitView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SplitView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsPaneOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsPaneOpenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OpenPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpenPaneLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpenPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompactPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompactPaneLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PanePlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PanePlacementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PanePlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DisplayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettingsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettingsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaneBackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaneBackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_AreScrollSnapPointsRegular(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreScrollSnapPointsRegular, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AreScrollSnapPointsRegular());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AreScrollSnapPointsRegular(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreScrollSnapPointsRegular, WINRT_WRAP(void), bool);
            this->shim().AreScrollSnapPointsRegular(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            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 WINRT_CALL get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThickness, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(Windows::UI::Xaml::CornerRadius));
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadius, WINRT_WRAP(void), Windows::UI::Xaml::CornerRadius const&);
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            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 WINRT_CALL get_Spacing(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Spacing, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().Spacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Spacing(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Spacing, WINRT_WRAP(void), double);
            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 WINRT_CALL get_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(Windows::UI::Xaml::Controls::BackgroundSizing));
            *value = detach_from<Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BackgroundSizing(Windows::UI::Xaml::Controls::BackgroundSizing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizing, WINRT_WRAP(void), Windows::UI::Xaml::Controls::BackgroundSizing const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::StackPanel), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::StackPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_AreScrollSnapPointsRegularProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreScrollSnapPointsRegularProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreScrollSnapPointsRegularProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BorderThicknessProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CornerRadiusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SpacingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_BackgroundSizingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundSizingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL SelectStyle(void* item, void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectStyle, WINRT_WRAP(Windows::UI::Xaml::Style), Windows::Foundation::IInspectable const&, Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::StyleSelector), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL SelectStyleCore(void* item, void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectStyleCore, WINRT_WRAP(Windows::UI::Xaml::Style), Windows::Foundation::IInspectable const&, Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL CreateCoreIndependentInputSource(Windows::UI::Core::CoreInputDeviceTypes deviceTypes, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CreateCoreIndependentInputSource, WINRT_WRAP(Windows::UI::Core::CoreIndependentInputSource), Windows::UI::Core::CoreInputDeviceTypes const&);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SwapChainBackgroundPanel), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SwapChainBackgroundPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_CompositionScaleX(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompositionScaleX, WINRT_WRAP(float));
            *value = detach_from<float>(this->shim().CompositionScaleX());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompositionScaleY(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompositionScaleY, WINRT_WRAP(float));
            *value = detach_from<float>(this->shim().CompositionScaleY());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CompositionScaleChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompositionScaleChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwapChainPanel, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_CompositionScaleChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CompositionScaleChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CompositionScaleChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL CreateCoreIndependentInputSource(Windows::UI::Core::CoreInputDeviceTypes deviceTypes, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CreateCoreIndependentInputSource, WINRT_WRAP(Windows::UI::Core::CoreIndependentInputSource), Windows::UI::Core::CoreInputDeviceTypes const&);
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SwapChainPanel), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SwapChainPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_CompositionScaleXProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompositionScaleXProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompositionScaleXProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CompositionScaleYProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CompositionScaleYProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LeftItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftItems, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeItems));
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().LeftItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LeftItems(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftItems, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SwipeItems const&);
            this->shim().LeftItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RightItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightItems, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeItems));
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().RightItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_RightItems(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightItems, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SwipeItems const&);
            this->shim().RightItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopItems, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeItems));
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().TopItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TopItems(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopItems, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SwipeItems const&);
            this->shim().TopItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BottomItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BottomItems, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeItems));
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().BottomItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BottomItems(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BottomItems, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SwipeItems const&);
            this->shim().BottomItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Close() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Close, WINRT_WRAP(void));
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeControl), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_LeftItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LeftItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RightItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RightItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TopItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TopItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BottomItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BottomItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Text(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Text(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(void), hstring const&);
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IconSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSource, WINRT_WRAP(Windows::UI::Xaml::Controls::IconSource));
            *value = detach_from<Windows::UI::Xaml::Controls::IconSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IconSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSource, WINRT_WRAP(void), Windows::UI::Xaml::Controls::IconSource const&);
            this->shim().IconSource(*reinterpret_cast<Windows::UI::Xaml::Controls::IconSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Background, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Command(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Command, WINRT_WRAP(Windows::UI::Xaml::Input::ICommand));
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Command(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Command, WINRT_WRAP(void), Windows::UI::Xaml::Input::ICommand const&);
            this->shim().Command(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameter, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameter, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().CommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BehaviorOnInvoked(Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BehaviorOnInvoked, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked));
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked>(this->shim().BehaviorOnInvoked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_BehaviorOnInvoked(Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BehaviorOnInvoked, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked const&);
            this->shim().BehaviorOnInvoked(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Invoked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Invoked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwipeItem, Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const&);
            *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 WINRT_CALL remove_Invoked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Invoked, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_SwipeControl(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SwipeControl, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeControl));
            *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 WINRT_CALL get_IconSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IconSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BackgroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CommandParameterProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BehaviorOnInvokedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BehaviorOnInvokedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Mode(Windows::UI::Xaml::Controls::SwipeMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Mode, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeMode));
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeMode>(this->shim().Mode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Mode(Windows::UI::Xaml::Controls::SwipeMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Mode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::SwipeMode const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SwipeItems), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Symbol(Windows::UI::Xaml::Controls::Symbol* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Symbol, WINRT_WRAP(Windows::UI::Xaml::Controls::Symbol));
            *value = detach_from<Windows::UI::Xaml::Controls::Symbol>(this->shim().Symbol());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Symbol(Windows::UI::Xaml::Controls::Symbol value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Symbol, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Symbol const&);
            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 WINRT_CALL CreateInstanceWithSymbol(Windows::UI::Xaml::Controls::Symbol symbol, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CreateInstanceWithSymbol, WINRT_WRAP(Windows::UI::Xaml::Controls::SymbolIcon), Windows::UI::Xaml::Controls::Symbol const&);
            *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 WINRT_CALL get_Symbol(Windows::UI::Xaml::Controls::Symbol* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Symbol, WINRT_WRAP(Windows::UI::Xaml::Controls::Symbol));
            *value = detach_from<Windows::UI::Xaml::Controls::Symbol>(this->shim().Symbol());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Symbol(Windows::UI::Xaml::Controls::Symbol value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Symbol, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Symbol const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::SymbolIconSource), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::SymbolIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_SymbolProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SymbolProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SymbolProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SymbolProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSize, WINRT_WRAP(void), double);
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(Windows::UI::Xaml::Media::FontFamily));
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamily, WINRT_WRAP(void), Windows::UI::Xaml::Media::FontFamily const&);
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(Windows::UI::Text::FontWeight));
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeight, WINRT_WRAP(void), Windows::UI::Text::FontWeight const&);
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(Windows::UI::Text::FontStyle));
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyle, WINRT_WRAP(void), Windows::UI::Text::FontStyle const&);
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStretch(Windows::UI::Text::FontStretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretch, WINRT_WRAP(Windows::UI::Text::FontStretch));
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_FontStretch(Windows::UI::Text::FontStretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretch, WINRT_WRAP(void), Windows::UI::Text::FontStretch const&);
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterSpacing(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacing, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CharacterSpacing(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacing, WINRT_WRAP(void), int32_t);
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Foreground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(Windows::UI::Xaml::TextWrapping));
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(void), Windows::UI::Xaml::TextWrapping const&);
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextTrimming(Windows::UI::Xaml::TextTrimming* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextTrimming, WINRT_WRAP(Windows::UI::Xaml::TextTrimming));
            *value = detach_from<Windows::UI::Xaml::TextTrimming>(this->shim().TextTrimming());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextTrimming(Windows::UI::Xaml::TextTrimming value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextTrimming, WINRT_WRAP(void), Windows::UI::Xaml::TextTrimming const&);
            this->shim().TextTrimming(*reinterpret_cast<Windows::UI::Xaml::TextTrimming const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignment, WINRT_WRAP(Windows::UI::Xaml::TextAlignment));
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignment, WINRT_WRAP(void), Windows::UI::Xaml::TextAlignment const&);
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Text(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Text(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(void), hstring const&);
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Inlines(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Inlines, WINRT_WRAP(Windows::UI::Xaml::Documents::InlineCollection));
            *value = detach_from<Windows::UI::Xaml::Documents::InlineCollection>(this->shim().Inlines());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Padding, WINRT_WRAP(void), Windows::UI::Xaml::Thickness const&);
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LineHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeight, WINRT_WRAP(void), double);
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategy, WINRT_WRAP(Windows::UI::Xaml::LineStackingStrategy));
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategy, WINRT_WRAP(void), Windows::UI::Xaml::LineStackingStrategy const&);
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextSelectionEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSelectionEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextSelectionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextSelectionEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSelectionEnabled, WINRT_WRAP(void), bool);
            this->shim().IsTextSelectionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentStart, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ContentEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentEnd, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionStart, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionEnd, WINRT_WRAP(Windows::UI::Xaml::Documents::TextPointer));
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_BaselineOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BaselineOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_SelectionChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const&);
            *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 WINRT_CALL remove_ContextMenuOpening(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectAll, WINRT_WRAP(void));
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Select(void* start, void* end) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Select, WINRT_WRAP(void), Windows::UI::Xaml::Documents::TextPointer const&, Windows::UI::Xaml::Documents::TextPointer const&);
            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 WINRT_CALL Focus(Windows::UI::Xaml::FocusState value, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Focus, WINRT_WRAP(bool), Windows::UI::Xaml::FocusState const&);
            *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 WINRT_CALL get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLines(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLines, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxLines(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLines, WINRT_WRAP(void), int32_t);
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextLineBounds(Windows::UI::Xaml::TextLineBounds* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBounds, WINRT_WRAP(Windows::UI::Xaml::TextLineBounds));
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextLineBounds(Windows::UI::Xaml::TextLineBounds value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBounds, WINRT_WRAP(void), Windows::UI::Xaml::TextLineBounds const&);
            this->shim().TextLineBounds(*reinterpret_cast<Windows::UI::Xaml::TextLineBounds const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignment, WINRT_WRAP(Windows::UI::Xaml::OpticalMarginAlignment));
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignment, WINRT_WRAP(void), Windows::UI::Xaml::OpticalMarginAlignment const&);
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorFontEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsColorFontEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabled, WINRT_WRAP(void), bool);
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(Windows::UI::Xaml::TextReadingOrder));
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(void), Windows::UI::Xaml::TextReadingOrder const&);
            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 WINRT_CALL get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL GetAlphaMask(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetAlphaMask, WINRT_WRAP(Windows::UI::Composition::CompositionBrush));
            *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 WINRT_CALL get_TextDecorations(Windows::UI::Text::TextDecorations* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextDecorations, WINRT_WRAP(Windows::UI::Text::TextDecorations));
            *value = detach_from<Windows::UI::Text::TextDecorations>(this->shim().TextDecorations());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextDecorations(Windows::UI::Text::TextDecorations value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextDecorations, WINRT_WRAP(void), Windows::UI::Text::TextDecorations const&);
            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 WINRT_CALL get_IsTextTrimmed(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmed, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignment, WINRT_WRAP(Windows::UI::Xaml::TextAlignment));
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignment, WINRT_WRAP(void), Windows::UI::Xaml::TextAlignment const&);
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextHighlighters(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextHighlighters, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>>(this->shim().TextHighlighters());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmedChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const&);
            *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 WINRT_CALL remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(IsTextTrimmedChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_SelectionFlyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionFlyout(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::FlyoutBase const&);
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL CopySelectionToClipboard() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CopySelectionToClipboard, WINRT_WRAP(void));
            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 WINRT_CALL get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontFamilyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontWeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_FontStretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FontStretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterSpacingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrappingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextTrimmingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextTrimmingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextTrimmingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PaddingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_LineStackingStrategyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LineStackingStrategyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextSelectionEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextSelectionEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSelectionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLinesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLinesProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextLineBoundsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextLineBoundsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OpticalMarginAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OpticalMarginAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorFontEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextScaleFactorEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_TextDecorationsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextDecorationsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsTextTrimmedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextTrimmedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalTextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectionFlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Text(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Text(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Text, WINRT_WRAP(void), hstring const&);
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedText, WINRT_WRAP(void), hstring const&);
            this->shim().SelectedText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionLength, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionLength(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionLength, WINRT_WRAP(void), int32_t);
            this->shim().SelectionLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionStart(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionStart, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionStart(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionStart, WINRT_WRAP(void), int32_t);
            this->shim().SelectionStart(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLength, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaxLength(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLength, WINRT_WRAP(void), int32_t);
            this->shim().MaxLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsReadOnly(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnly, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsReadOnly(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnly, WINRT_WRAP(void), bool);
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AcceptsReturn(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AcceptsReturn, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AcceptsReturn());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AcceptsReturn(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AcceptsReturn, WINRT_WRAP(void), bool);
            this->shim().AcceptsReturn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignment, WINRT_WRAP(Windows::UI::Xaml::TextAlignment));
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignment, WINRT_WRAP(void), Windows::UI::Xaml::TextAlignment const&);
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(Windows::UI::Xaml::TextWrapping));
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrapping, WINRT_WRAP(void), Windows::UI::Xaml::TextWrapping const&);
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSpellCheckEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSpellCheckEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSpellCheckEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsSpellCheckEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSpellCheckEnabled, WINRT_WRAP(void), bool);
            this->shim().IsSpellCheckEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextPredictionEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextPredictionEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsTextPredictionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsTextPredictionEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextPredictionEnabled, WINRT_WRAP(void), bool);
            this->shim().IsTextPredictionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InputScope(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScope, WINRT_WRAP(Windows::UI::Xaml::Input::InputScope));
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_InputScope(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScope, WINRT_WRAP(void), Windows::UI::Xaml::Input::InputScope const&);
            this->shim().InputScope(*reinterpret_cast<Windows::UI::Xaml::Input::InputScope const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_TextChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::TextChangedEventHandler const&);
            *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 WINRT_CALL remove_TextChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TextChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_SelectionChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectionChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const&);
            *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 WINRT_CALL remove_ContextMenuOpening(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContextMenuOpening, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL Select(int32_t start, int32_t length) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Select, WINRT_WRAP(void), int32_t, int32_t);
            this->shim().Select(start, length);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectAll, WINRT_WRAP(void));
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetRectFromCharacterIndex(int32_t charIndex, bool trailingEdge, Windows::Foundation::Rect* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetRectFromCharacterIndex, WINRT_WRAP(Windows::Foundation::Rect), int32_t, bool);
            *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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderText(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderText, WINRT_WRAP(void), hstring const&);
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColor, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocus, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocus, WINRT_WRAP(void), bool);
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorFontEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsColorFontEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabled, WINRT_WRAP(void), bool);
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Paste(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Paste, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::TextControlPasteEventHandler const&);
            *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 WINRT_CALL remove_Paste(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Paste, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL add_TextCompositionStarted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextCompositionStarted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const&);
            *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 WINRT_CALL remove_TextCompositionStarted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextCompositionStarted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TextCompositionStarted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_TextCompositionChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextCompositionChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const&);
            *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 WINRT_CALL remove_TextCompositionChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextCompositionChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TextCompositionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_TextCompositionEnded(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextCompositionEnded, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const&);
            *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 WINRT_CALL remove_TextCompositionEnded(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextCompositionEnded, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TextCompositionEnded(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(Windows::UI::Xaml::TextReadingOrder));
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrder, WINRT_WRAP(void), Windows::UI::Xaml::TextReadingOrder const&);
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DesiredCandidateWindowAlignment, WINRT_WRAP(Windows::UI::Xaml::Controls::CandidateWindowAlignment));
            *value = detach_from<Windows::UI::Xaml::Controls::CandidateWindowAlignment>(this->shim().DesiredCandidateWindowAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DesiredCandidateWindowAlignment, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CandidateWindowAlignment const&);
            this->shim().DesiredCandidateWindowAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::CandidateWindowAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CandidateWindowBoundsChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CandidateWindowBoundsChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const&);
            *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 WINRT_CALL remove_CandidateWindowBoundsChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CandidateWindowBoundsChanged, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_TextChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const&);
            *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 WINRT_CALL remove_TextChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TextChanging, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL GetLinguisticAlternativesAsync(void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetLinguisticAlternativesAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>));
            *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 WINRT_CALL get_SelectionHighlightColorWhenNotFocused(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorWhenNotFocused, WINRT_WRAP(Windows::UI::Xaml::Media::SolidColorBrush));
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColorWhenNotFocused());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionHighlightColorWhenNotFocused(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorWhenNotFocused, WINRT_WRAP(void), Windows::UI::Xaml::Media::SolidColorBrush const&);
            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 WINRT_CALL get_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignment, WINRT_WRAP(Windows::UI::Xaml::TextAlignment));
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignment, WINRT_WRAP(void), Windows::UI::Xaml::TextAlignment const&);
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterCasing, WINRT_WRAP(Windows::UI::Xaml::Controls::CharacterCasing));
            *value = detach_from<Windows::UI::Xaml::Controls::CharacterCasing>(this->shim().CharacterCasing());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterCasing, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CharacterCasing const&);
            this->shim().CharacterCasing(*reinterpret_cast<Windows::UI::Xaml::Controls::CharacterCasing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderForeground, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PlaceholderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlaceholderForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderForeground, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().PlaceholderForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CopyingToClipboard(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CopyingToClipboard, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const&);
            *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 WINRT_CALL remove_CopyingToClipboard(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CopyingToClipboard, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CopyingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_CuttingToClipboard(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CuttingToClipboard, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const&);
            *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 WINRT_CALL remove_CuttingToClipboard(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CuttingToClipboard, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().CuttingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_BeforeTextChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BeforeTextChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const&);
            *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 WINRT_CALL remove_BeforeTextChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(BeforeTextChanging, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_HandwritingView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HandwritingView, WINRT_WRAP(Windows::UI::Xaml::Controls::HandwritingView));
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().HandwritingView());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HandwritingView(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HandwritingView, WINRT_WRAP(void), Windows::UI::Xaml::Controls::HandwritingView const&);
            this->shim().HandwritingView(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingView const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHandwritingViewEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHandwritingViewEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsHandwritingViewEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsHandwritingViewEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHandwritingViewEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_CanPasteClipboardContent(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanPasteClipboardContent, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanPasteClipboardContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanUndo(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanUndo, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanUndo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanRedo(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanRedo, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanRedo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionFlyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionFlyout(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyout, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::FlyoutBase const&);
            this->shim().SelectionFlyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProofingMenuFlyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProofingMenuFlyout, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::FlyoutBase));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().ProofingMenuFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Description(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Description(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Description, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Description(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SelectionChanging(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionChanging, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> const&);
            *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 WINRT_CALL remove_SelectionChanging(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectionChanging, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().SelectionChanging(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL Undo() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Undo, WINRT_WRAP(void));
            this->shim().Undo();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Redo() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Redo, WINRT_WRAP(void));
            this->shim().Redo();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL PasteFromClipboard() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PasteFromClipboard, WINRT_WRAP(void));
            this->shim().PasteFromClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL CopySelectionToClipboard() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CopySelectionToClipboard, WINRT_WRAP(void));
            this->shim().CopySelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL CutSelectionToClipboard() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CutSelectionToClipboard, WINRT_WRAP(void));
            this->shim().CutSelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ClearUndoRedoHistory() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClearUndoRedoHistory, WINRT_WRAP(void));
            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 WINRT_CALL get_NewText(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewText, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().NewText());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::TextBox), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::TextBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_SelectionStart(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionStart, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionLength, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaxLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaxLengthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsReadOnlyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsReadOnlyProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AcceptsReturnProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AcceptsReturnProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AcceptsReturnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextWrappingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSpellCheckEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSpellCheckEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSpellCheckEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsTextPredictionEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsTextPredictionEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextPredictionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_InputScopeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InputScopeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderTextProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PreventKeyboardDisplayOnProgrammaticFocusProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsColorFontEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsColorFontEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DesiredCandidateWindowAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DesiredCandidateWindowAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DesiredCandidateWindowAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TextReadingOrderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectionHighlightColorWhenNotFocusedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionHighlightColorWhenNotFocusedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HorizontalTextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalTextAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CharacterCasingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CharacterCasingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterCasingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlaceholderForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlaceholderForegroundProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HandwritingViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HandwritingViewProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HandwritingViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsHandwritingViewEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsHandwritingViewEnabledProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CanPasteClipboardContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanPasteClipboardContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanPasteClipboardContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanUndoProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanUndoProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanUndoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanRedoProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanRedoProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanRedoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionFlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionFlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ProofingMenuFlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ProofingMenuFlyoutProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProofingMenuFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DescriptionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DescriptionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsContentChanging(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsContentChanging, WINRT_WRAP(bool));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::TextCommandBarFlyout), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::TextCommandBarFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_StartIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StartIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Length(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Length, WINRT_WRAP(int32_t));
            *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 WINRT_CALL get_StartIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StartIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Length(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Length, WINRT_WRAP(int32_t));
            *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 WINRT_CALL get_StartIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StartIndex, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Length(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Length, WINRT_WRAP(int32_t));
            *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 WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_OldTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldTime, WINRT_WRAP(Windows::Foundation::TimeSpan));
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NewTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewTime, WINRT_WRAP(Windows::Foundation::TimeSpan));
            *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 WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ClockIdentifier(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClockIdentifier, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().ClockIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ClockIdentifier(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClockIdentifier, WINRT_WRAP(void), hstring const&);
            this->shim().ClockIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinuteIncrement(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinuteIncrement, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MinuteIncrement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinuteIncrement(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinuteIncrement, WINRT_WRAP(void), int32_t);
            this->shim().MinuteIncrement(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Time(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Time, WINRT_WRAP(Windows::Foundation::TimeSpan));
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Time());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Time(Windows::Foundation::TimeSpan value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Time, WINRT_WRAP(void), Windows::Foundation::TimeSpan const&);
            this->shim().Time(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_TimeChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TimeChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const&);
            *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 WINRT_CALL remove_TimeChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TimeChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(Windows::UI::Xaml::Controls::LightDismissOverlayMode));
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::LightDismissOverlayMode const&);
            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 WINRT_CALL get_SelectedTime(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedTime, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::TimeSpan>));
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>(this->shim().SelectedTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectedTime(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedTime, WINRT_WRAP(void), Windows::Foundation::IReference<Windows::Foundation::TimeSpan> const&);
            this->shim().SelectedTime(*reinterpret_cast<Windows::Foundation::IReference<Windows::Foundation::TimeSpan> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_SelectedTimeChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedTimeChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePicker, Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> const&);
            *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 WINRT_CALL remove_SelectedTimeChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SelectedTimeChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::TimePicker), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::TimePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ClockIdentifier(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClockIdentifier, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().ClockIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ClockIdentifier(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClockIdentifier, WINRT_WRAP(void), hstring const&);
            this->shim().ClockIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Time(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Time, WINRT_WRAP(Windows::Foundation::TimeSpan));
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Time());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Time(Windows::Foundation::TimeSpan value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Time, WINRT_WRAP(void), Windows::Foundation::TimeSpan const&);
            this->shim().Time(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinuteIncrement(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinuteIncrement, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MinuteIncrement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MinuteIncrement(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinuteIncrement, WINRT_WRAP(void), int32_t);
            this->shim().MinuteIncrement(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_TimePicked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TimePicked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePickerFlyout, Windows::UI::Xaml::Controls::TimePickedEventArgs> const&);
            *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 WINRT_CALL remove_TimePicked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(TimePicked, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().TimePicked(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL ShowAtAsync(void* target, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ShowAtAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>), Windows::UI::Xaml::FrameworkElement const);
            *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::ITimePickerFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>
{
    int32_t WINRT_CALL get_ClockIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClockIdentifierProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClockIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TimeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TimeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TimeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinuteIncrementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinuteIncrementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_OldTime(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldTime, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::TimeSpan>));
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>(this->shim().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NewTime(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewTime, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::TimeSpan>));
            *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 WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ClockIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClockIdentifierProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClockIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MinuteIncrementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MinuteIncrementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinuteIncrementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TimeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TimeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LightDismissOverlayModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectedTimeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedTimeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_OldTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OldTime, WINRT_WRAP(Windows::Foundation::TimeSpan));
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_NewTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewTime, WINRT_WRAP(Windows::Foundation::TimeSpan));
            *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 WINRT_CALL get_IsChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsChecked, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsChecked, WINRT_WRAP(void), bool);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IsCheckedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCheckedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_IsChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsChecked, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsChecked, WINRT_WRAP(void), bool);
            this->shim().IsChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_IsCheckedChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsCheckedChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ToggleSplitButton, Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> const&);
            *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 WINRT_CALL remove_IsCheckedChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(IsCheckedChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL CreateInstance(void* owner, void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer), Windows::UI::Xaml::Controls::ToggleSplitButton const&, Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *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), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ToggleSplitButton), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ToggleSplitButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_IsOn(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOn, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsOn());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsOn(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOn, WINRT_WRAP(void), bool);
            this->shim().IsOn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Header, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OnContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContent, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().OnContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OnContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContent, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().OnContent(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OnContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().OnContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OnContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().OnContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OffContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OffContent, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().OffContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OffContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OffContent, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().OffContent(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OffContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OffContentTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().OffContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_OffContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OffContentTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().OffContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Toggled(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Toggled, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_Toggled(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Toggled, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL OnToggled() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnToggled, WINRT_WRAP(void));
            this->shim().OnToggled();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL OnOnContentChanged(void* oldContent, void* newContent) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnOnContentChanged, WINRT_WRAP(void), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL OnOffContentChanged(void* oldContent, void* newContent) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnOffContentChanged, WINRT_WRAP(void), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL OnHeaderChanged(void* oldContent, void* newContent) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnHeaderChanged, WINRT_WRAP(void), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_IsOnProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOnProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HeaderTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OnContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OnContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OnContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnContentTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OnContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OffContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OffContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OffContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OffContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OffContentTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HorizontalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalOffset, WINRT_WRAP(void), double);
            this->shim().HorizontalOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOpen, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOpen, WINRT_WRAP(void), bool);
            this->shim().IsOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Placement(Windows::UI::Xaml::Controls::Primitives::PlacementMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Placement, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::PlacementMode));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::PlacementMode>(this->shim().Placement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Placement(Windows::UI::Xaml::Controls::Primitives::PlacementMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Placement, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Primitives::PlacementMode const&);
            this->shim().Placement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::PlacementMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlacementTarget(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementTarget, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PlacementTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlacementTarget(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementTarget, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().PlacementTarget(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalOffset, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalOffset, WINRT_WRAP(void), double);
            this->shim().VerticalOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_Closed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_Closed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Closed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Opened(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::RoutedEventHandler const&);
            *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 WINRT_CALL remove_Opened(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Opened, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_PlacementRect(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementRect, WINRT_WRAP(Windows::Foundation::IReference<Windows::Foundation::Rect>));
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::Rect>>(this->shim().PlacementRect());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_PlacementRect(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementRect, WINRT_WRAP(void), Windows::Foundation::IReference<Windows::Foundation::Rect> const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::ToolTip), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::ToolTip>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_PlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetPlacement(void* element, Windows::UI::Xaml::Controls::Primitives::PlacementMode* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetPlacement, WINRT_WRAP(Windows::UI::Xaml::Controls::Primitives::PlacementMode), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetPlacement(void* element, Windows::UI::Xaml::Controls::Primitives::PlacementMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetPlacement, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::UI::Xaml::Controls::Primitives::PlacementMode const&);
            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 WINRT_CALL get_PlacementTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementTargetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetPlacementTarget(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetPlacementTarget, WINRT_WRAP(Windows::UI::Xaml::UIElement), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetPlacementTarget(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetPlacementTarget, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::UI::Xaml::UIElement const&);
            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 WINRT_CALL get_ToolTipProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ToolTipProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ToolTipProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetToolTip(void* element, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetToolTip, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetToolTip(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetToolTip, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::Foundation::IInspectable const&);
            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 WINRT_CALL get_HorizontalOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsOpenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PlacementTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementTargetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalOffsetProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_PlacementRectProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PlacementRectProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_RootNodes(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RootNodes, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().RootNodes());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectionMode(Windows::UI::Xaml::Controls::TreeViewSelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewSelectionMode));
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SelectionMode(Windows::UI::Xaml::Controls::TreeViewSelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionMode, WINRT_WRAP(void), Windows::UI::Xaml::Controls::TreeViewSelectionMode const&);
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SelectedNodes(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectedNodes, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().SelectedNodes());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Expand(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Expand, WINRT_WRAP(void), Windows::UI::Xaml::Controls::TreeViewNode const&);
            this->shim().Expand(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewNode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Collapse(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Collapse, WINRT_WRAP(void), Windows::UI::Xaml::Controls::TreeViewNode const&);
            this->shim().Collapse(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewNode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectAll, WINRT_WRAP(void));
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ItemInvoked(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemInvoked, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const&);
            *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 WINRT_CALL remove_ItemInvoked(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ItemInvoked, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ItemInvoked(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Expanding(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Expanding, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const&);
            *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 WINRT_CALL remove_Expanding(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Expanding, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().Expanding(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_Collapsed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Collapsed, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const&);
            *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 WINRT_CALL remove_Collapsed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(Collapsed, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL NodeFromContainer(void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NodeFromContainer, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewNode), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL ContainerFromNode(void* node, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerFromNode, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), Windows::UI::Xaml::Controls::TreeViewNode const&);
            *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 WINRT_CALL ItemFromContainer(void* container, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemFromContainer, WINRT_WRAP(Windows::Foundation::IInspectable), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL ContainerFromItem(void* item, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainerFromItem, WINRT_WRAP(Windows::UI::Xaml::DependencyObject), Windows::Foundation::IInspectable const&);
            *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 WINRT_CALL get_CanDragItems(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanDragItems, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanDragItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanDragItems(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanDragItems, WINRT_WRAP(void), bool);
            this->shim().CanDragItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanReorderItems(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanReorderItems, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanReorderItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CanReorderItems(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanReorderItems, WINRT_WRAP(void), bool);
            this->shim().CanReorderItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplate, WINRT_WRAP(Windows::UI::Xaml::DataTemplate));
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplate, WINRT_WRAP(void), Windows::UI::Xaml::DataTemplate const&);
            this->shim().ItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::DataTemplateSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::DataTemplateSelector const&);
            this->shim().ItemTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyle, WINRT_WRAP(Windows::UI::Xaml::Style));
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().ItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyle, WINRT_WRAP(void), Windows::UI::Xaml::Style const&);
            this->shim().ItemContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyleSelector, WINRT_WRAP(Windows::UI::Xaml::Controls::StyleSelector));
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemContainerStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyleSelector, WINRT_WRAP(void), Windows::UI::Xaml::Controls::StyleSelector const&);
            this->shim().ItemContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerTransitions, WINRT_WRAP(Windows::UI::Xaml::Media::Animation::TransitionCollection));
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ItemContainerTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemContainerTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerTransitions, WINRT_WRAP(void), Windows::UI::Xaml::Media::Animation::TransitionCollection const&);
            this->shim().ItemContainerTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemsSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSource, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemsSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSource, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_DragItemsStarting(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DragItemsStarting, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> const&);
            *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 WINRT_CALL remove_DragItemsStarting(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DragItemsStarting, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DragItemsStarting(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_DragItemsCompleted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DragItemsCompleted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> const&);
            *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 WINRT_CALL remove_DragItemsCompleted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DragItemsCompleted, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_Node(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Node, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewNode));
            *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 WINRT_CALL get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(Windows::Foundation::IInspectable));
            *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 WINRT_CALL get_DropResult(Windows::ApplicationModel::DataTransfer::DataPackageOperation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DropResult, WINRT_WRAP(Windows::ApplicationModel::DataTransfer::DataPackageOperation));
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackageOperation>(this->shim().DropResult());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>));
            *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 WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            this->shim().Cancel(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Data(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Data, WINRT_WRAP(Windows::ApplicationModel::DataTransfer::DataPackage));
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Items, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>));
            *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 WINRT_CALL get_Node(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Node, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewNode));
            *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 WINRT_CALL get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Item, WINRT_WRAP(Windows::Foundation::IInspectable));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeView), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::TreeView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_GlyphOpacity(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphOpacity, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().GlyphOpacity());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GlyphOpacity(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphOpacity, WINRT_WRAP(void), double);
            this->shim().GlyphOpacity(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GlyphBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphBrush, WINRT_WRAP(Windows::UI::Xaml::Media::Brush));
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().GlyphBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GlyphBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphBrush, WINRT_WRAP(void), Windows::UI::Xaml::Media::Brush const&);
            this->shim().GlyphBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExpandedGlyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExpandedGlyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().ExpandedGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ExpandedGlyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExpandedGlyph, WINRT_WRAP(void), hstring const&);
            this->shim().ExpandedGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CollapsedGlyph(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CollapsedGlyph, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().CollapsedGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_CollapsedGlyph(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CollapsedGlyph, WINRT_WRAP(void), hstring const&);
            this->shim().CollapsedGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GlyphSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphSize, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().GlyphSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_GlyphSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphSize, WINRT_WRAP(void), double);
            this->shim().GlyphSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsExpanded(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExpanded, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsExpanded());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsExpanded(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExpanded, WINRT_WRAP(void), bool);
            this->shim().IsExpanded(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TreeViewItemTemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TreeViewItemTemplateSettings, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings));
            *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 WINRT_CALL get_HasUnrealizedChildren(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasUnrealizedChildren, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().HasUnrealizedChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HasUnrealizedChildren(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasUnrealizedChildren, WINRT_WRAP(void), bool);
            this->shim().HasUnrealizedChildren(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemsSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSource, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemsSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSource, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewItem), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_InvokedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InvokedItem, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().InvokedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            this->shim().Handled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *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 WINRT_CALL get_GlyphOpacityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphOpacityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphOpacityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GlyphBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphBrushProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ExpandedGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExpandedGlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CollapsedGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CollapsedGlyphProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CollapsedGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_GlyphSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GlyphSizeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsExpandedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExpandedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExpandedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_TreeViewItemTemplateSettingsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(TreeViewItemTemplateSettingsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_HasUnrealizedChildrenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasUnrealizedChildrenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasUnrealizedChildrenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemsSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ExpandedGlyphVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExpandedGlyphVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ExpandedGlyphVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CollapsedGlyphVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CollapsedGlyphVisibility, WINRT_WRAP(Windows::UI::Xaml::Visibility));
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().CollapsedGlyphVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Indentation(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Indentation, WINRT_WRAP(Windows::UI::Xaml::Thickness));
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Indentation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DragItemsCount(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DragItemsCount, WINRT_WRAP(int32_t));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ExpandedGlyphVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExpandedGlyphVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedGlyphVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CollapsedGlyphVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CollapsedGlyphVisibilityProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CollapsedGlyphVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IndentationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IndentationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IndentationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DragItemsCountProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DragItemsCountProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewList), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewList>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(Windows::Foundation::IInspectable));
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(void), Windows::Foundation::IInspectable const&);
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Parent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Parent, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewNode));
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Parent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsExpanded(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExpanded, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsExpanded());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsExpanded(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExpanded, WINRT_WRAP(void), bool);
            this->shim().IsExpanded(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HasChildren(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasChildren, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().HasChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Depth(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Depth, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().Depth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HasUnrealizedChildren(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasUnrealizedChildren, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().HasUnrealizedChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HasUnrealizedChildren(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasUnrealizedChildren, WINRT_WRAP(void), bool);
            this->shim().HasUnrealizedChildren(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Children(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Children, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>));
            *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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::TreeViewNode), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DepthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DepthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DepthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsExpandedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsExpandedProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExpandedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HasChildrenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HasChildrenProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SelectionModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CanDragItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanDragItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanDragItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanReorderItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanReorderItemsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanReorderItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemTemplateSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerStyleSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerStyleSelectorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemContainerTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerTransitionsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemsSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemsSourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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::IUIElementCollection> : produce_base<D, Windows::UI::Xaml::Controls::IUIElementCollection>
{
    int32_t WINRT_CALL Move(uint32_t oldIndex, uint32_t newIndex) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Move, WINRT_WRAP(void), uint32_t, uint32_t);
            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 WINRT_CALL get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Content, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            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 WINRT_CALL CreateInstance(void* baseInterface, void** innerInterface, void** value) noexcept final
    {
        try
        {
            if (innerInterface) *innerInterface = nullptr;
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_innerInterface;
            WINRT_ASSERT_DECLARATION(CreateInstance, WINRT_WRAP(Windows::UI::Xaml::Controls::UserControl), Windows::Foundation::IInspectable const&, Windows::Foundation::IInspectable&);
            *value = detach_from<Windows::UI::Xaml::Controls::UserControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&baseInterface), __local_innerInterface));
            if (innerInterface) *innerInterface = detach_abi(__local_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 WINRT_CALL get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ItemHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeight, WINRT_WRAP(void), double);
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidth, WINRT_WRAP(void), double);
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalChildrenAlignment, WINRT_WRAP(Windows::UI::Xaml::HorizontalAlignment));
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalChildrenAlignment, WINRT_WRAP(void), Windows::UI::Xaml::HorizontalAlignment const&);
            this->shim().HorizontalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalChildrenAlignment, WINRT_WRAP(Windows::UI::Xaml::VerticalAlignment));
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalChildrenAlignment, WINRT_WRAP(void), Windows::UI::Xaml::VerticalAlignment const&);
            this->shim().VerticalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaximumRowsOrColumns(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumns, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaximumRowsOrColumns(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumns, WINRT_WRAP(void), int32_t);
            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 WINRT_CALL get_ItemHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalChildrenAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalChildrenAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalChildrenAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalChildrenAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaximumRowsOrColumnsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumnsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_RowSpanProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RowSpanProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetRowSpan(void* element, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetRowSpan, WINRT_WRAP(int32_t), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<int32_t>(this->shim().GetRowSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetRowSpan(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetRowSpan, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, int32_t);
            this->shim().SetRowSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ColumnSpanProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ColumnSpanProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetColumnSpan(void* element, int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetColumnSpan, WINRT_WRAP(int32_t), Windows::UI::Xaml::UIElement const&);
            *result = detach_from<int32_t>(this->shim().GetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetColumnSpan(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetColumnSpan, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&, int32_t);
            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 WINRT_CALL get_Child(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Child, WINRT_WRAP(Windows::UI::Xaml::UIElement));
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Child(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Child, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(Windows::UI::Xaml::Media::Stretch));
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stretch, WINRT_WRAP(void), Windows::UI::Xaml::Media::Stretch const&);
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StretchDirection(Windows::UI::Xaml::Controls::StretchDirection* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchDirection, WINRT_WRAP(Windows::UI::Xaml::Controls::StretchDirection));
            *value = detach_from<Windows::UI::Xaml::Controls::StretchDirection>(this->shim().StretchDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_StretchDirection(Windows::UI::Xaml::Controls::StretchDirection value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchDirection, WINRT_WRAP(void), Windows::UI::Xaml::Controls::StretchDirection const&);
            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 WINRT_CALL get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StretchDirectionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StretchDirectionProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ItemContainerGenerator(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemContainerGenerator, WINRT_WRAP(Windows::UI::Xaml::Controls::ItemContainerGenerator));
            *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 WINRT_CALL OnItemsChanged(void* sender, void* args) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnItemsChanged, WINRT_WRAP(void), Windows::Foundation::IInspectable const&, Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const&);
            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 WINRT_CALL OnClearChildren() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnClearChildren, WINRT_WRAP(void));
            this->shim().OnClearChildren();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL BringIndexIntoView(int32_t index) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BringIndexIntoView, WINRT_WRAP(void), int32_t);
            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 WINRT_CALL AddInternalChild(void* child) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AddInternalChild, WINRT_WRAP(void), Windows::UI::Xaml::UIElement const&);
            this->shim().AddInternalChild(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&child));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL InsertInternalChild(int32_t index, void* child) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InsertInternalChild, WINRT_WRAP(void), int32_t, Windows::UI::Xaml::UIElement const&);
            this->shim().InsertInternalChild(index, *reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&child));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL RemoveInternalChildRange(int32_t index, int32_t range) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(RemoveInternalChildRange, WINRT_WRAP(void), int32_t, int32_t);
            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 WINRT_CALL get_AreScrollSnapPointsRegular(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreScrollSnapPointsRegular, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().AreScrollSnapPointsRegular());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AreScrollSnapPointsRegular(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreScrollSnapPointsRegular, WINRT_WRAP(void), bool);
            this->shim().AreScrollSnapPointsRegular(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_CleanUpVirtualizedItemEvent(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CleanUpVirtualizedItemEvent, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const&);
            *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 WINRT_CALL remove_CleanUpVirtualizedItemEvent(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(CleanUpVirtualizedItemEvent, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL OnCleanUpVirtualizedItem(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OnCleanUpVirtualizedItem, WINRT_WRAP(void), Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const&);
            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 WINRT_CALL get_AreScrollSnapPointsRegularProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AreScrollSnapPointsRegularProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreScrollSnapPointsRegularProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VirtualizationModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VirtualizationModeProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VirtualizationModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetVirtualizationMode(void* element, Windows::UI::Xaml::Controls::VirtualizationMode* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetVirtualizationMode, WINRT_WRAP(Windows::UI::Xaml::Controls::VirtualizationMode), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL SetVirtualizationMode(void* element, Windows::UI::Xaml::Controls::VirtualizationMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetVirtualizationMode, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&, Windows::UI::Xaml::Controls::VirtualizationMode const&);
            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 WINRT_CALL get_IsVirtualizingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsVirtualizingProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVirtualizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetIsVirtualizing(void* o, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetIsVirtualizing, WINRT_WRAP(bool), Windows::UI::Xaml::DependencyObject const&);
            *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 WINRT_CALL get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Source, WINRT_WRAP(void), Windows::Foundation::Uri const&);
            this->shim().Source(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AllowedScriptNotifyUris(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AllowedScriptNotifyUris, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>>(this->shim().AllowedScriptNotifyUris());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_AllowedScriptNotifyUris(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AllowedScriptNotifyUris, WINRT_WRAP(void), Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> const&);
            this->shim().AllowedScriptNotifyUris(*reinterpret_cast<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DataTransferPackage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DataTransferPackage, WINRT_WRAP(Windows::ApplicationModel::DataTransfer::DataPackage));
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().DataTransferPackage());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_LoadCompleted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LoadCompleted, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const&);
            *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 WINRT_CALL remove_LoadCompleted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(LoadCompleted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().LoadCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ScriptNotify(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ScriptNotify, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::NotifyEventHandler const&);
            *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 WINRT_CALL remove_ScriptNotify(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ScriptNotify, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ScriptNotify(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_NavigationFailed(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigationFailed, WINRT_WRAP(winrt::event_token), Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const&);
            *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 WINRT_CALL remove_NavigationFailed(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(NavigationFailed, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().NavigationFailed(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL InvokeScript(void* scriptName, uint32_t __argumentsSize, void** arguments, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InvokeScript, WINRT_WRAP(hstring), hstring const&, array_view<hstring const>);
            *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 WINRT_CALL Navigate(void* source) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Navigate, WINRT_WRAP(void), Windows::Foundation::Uri const&);
            this->shim().Navigate(*reinterpret_cast<Windows::Foundation::Uri const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL NavigateToString(void* text) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigateToString, WINRT_WRAP(void), hstring const&);
            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 WINRT_CALL get_CanGoBack(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanGoBack, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanGoBack());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanGoForward(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanGoForward, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().CanGoForward());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DocumentTitle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DocumentTitle, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().DocumentTitle());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_NavigationStarting(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigationStarting, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const&);
            *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 WINRT_CALL remove_NavigationStarting(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(NavigationStarting, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().NavigationStarting(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_ContentLoading(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContentLoading, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const&);
            *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 WINRT_CALL remove_ContentLoading(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContentLoading, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().ContentLoading(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_DOMContentLoaded(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DOMContentLoaded, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const&);
            *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 WINRT_CALL remove_DOMContentLoaded(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(DOMContentLoaded, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().DOMContentLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL GoForward() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GoForward, WINRT_WRAP(void));
            this->shim().GoForward();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GoBack() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GoBack, WINRT_WRAP(void));
            this->shim().GoBack();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Refresh() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Refresh, WINRT_WRAP(void));
            this->shim().Refresh();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Stop() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Stop, WINRT_WRAP(void));
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL CapturePreviewToStreamAsync(void* stream, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CapturePreviewToStreamAsync, WINRT_WRAP(Windows::Foundation::IAsyncAction), Windows::Storage::Streams::IRandomAccessStream const);
            *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 WINRT_CALL InvokeScriptAsync(void* scriptName, void* arguments, void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(InvokeScriptAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<hstring>), hstring const, Windows::Foundation::Collections::IIterable<hstring> const);
            *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 WINRT_CALL CaptureSelectedContentToDataPackageAsync(void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CaptureSelectedContentToDataPackageAsync, WINRT_WRAP(Windows::Foundation::IAsyncOperation<Windows::ApplicationModel::DataTransfer::DataPackage>));
            *operation = detach_from<Windows::Foundation::IAsyncOperation<Windows::ApplicationModel::DataTransfer::DataPackage>>(this->shim().CaptureSelectedContentToDataPackageAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL NavigateToLocalStreamUri(void* source, void* streamResolver) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigateToLocalStreamUri, WINRT_WRAP(void), Windows::Foundation::Uri const&, Windows::Web::IUriToStreamResolver const&);
            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 WINRT_CALL BuildLocalStreamUri(void* contentIdentifier, void* relativePath, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(BuildLocalStreamUri, WINRT_WRAP(Windows::Foundation::Uri), hstring const&, hstring const&);
            *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 WINRT_CALL get_DefaultBackgroundColor(struct struct_Windows_UI_Color* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultBackgroundColor, WINRT_WRAP(Windows::UI::Color));
            *value = detach_from<Windows::UI::Color>(this->shim().DefaultBackgroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_DefaultBackgroundColor(struct struct_Windows_UI_Color value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultBackgroundColor, WINRT_WRAP(void), Windows::UI::Color const&);
            this->shim().DefaultBackgroundColor(*reinterpret_cast<Windows::UI::Color const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_NavigationCompleted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigationCompleted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const&);
            *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 WINRT_CALL remove_NavigationCompleted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(NavigationCompleted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().NavigationCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_FrameNavigationStarting(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FrameNavigationStarting, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const&);
            *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 WINRT_CALL remove_FrameNavigationStarting(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(FrameNavigationStarting, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().FrameNavigationStarting(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_FrameContentLoading(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FrameContentLoading, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const&);
            *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 WINRT_CALL remove_FrameContentLoading(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(FrameContentLoading, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().FrameContentLoading(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_FrameDOMContentLoaded(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FrameDOMContentLoaded, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const&);
            *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 WINRT_CALL remove_FrameDOMContentLoaded(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(FrameDOMContentLoaded, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().FrameDOMContentLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_FrameNavigationCompleted(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(FrameNavigationCompleted, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const&);
            *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 WINRT_CALL remove_FrameNavigationCompleted(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(FrameNavigationCompleted, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().FrameNavigationCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_LongRunningScriptDetected(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(LongRunningScriptDetected, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const&);
            *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 WINRT_CALL remove_LongRunningScriptDetected(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(LongRunningScriptDetected, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().LongRunningScriptDetected(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_UnsafeContentWarningDisplaying(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnsafeContentWarningDisplaying, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_UnsafeContentWarningDisplaying(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(UnsafeContentWarningDisplaying, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().UnsafeContentWarningDisplaying(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_UnviewableContentIdentified(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnviewableContentIdentified, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const&);
            *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 WINRT_CALL remove_UnviewableContentIdentified(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(UnviewableContentIdentified, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().UnviewableContentIdentified(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL NavigateWithHttpRequestMessage(void* requestMessage) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NavigateWithHttpRequestMessage, WINRT_WRAP(void), Windows::Web::Http::HttpRequestMessage const&);
            this->shim().NavigateWithHttpRequestMessage(*reinterpret_cast<Windows::Web::Http::HttpRequestMessage const*>(&requestMessage));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Focus(Windows::UI::Xaml::FocusState value, bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Focus, WINRT_WRAP(bool), Windows::UI::Xaml::FocusState const&);
            *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 WINRT_CALL get_ContainsFullScreenElement(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainsFullScreenElement, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().ContainsFullScreenElement());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_ContainsFullScreenElementChanged(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainsFullScreenElementChanged, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const&);
            *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 WINRT_CALL remove_ContainsFullScreenElementChanged(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(ContainsFullScreenElementChanged, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_ExecutionMode(Windows::UI::Xaml::Controls::WebViewExecutionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExecutionMode, WINRT_WRAP(Windows::UI::Xaml::Controls::WebViewExecutionMode));
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewExecutionMode>(this->shim().ExecutionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DeferredPermissionRequests(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DeferredPermissionRequests, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>>(this->shim().DeferredPermissionRequests());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Settings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Settings, WINRT_WRAP(Windows::UI::Xaml::Controls::WebViewSettings));
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewSettings>(this->shim().Settings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL add_UnsupportedUriSchemeIdentified(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(UnsupportedUriSchemeIdentified, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const&);
            *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 WINRT_CALL remove_UnsupportedUriSchemeIdentified(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(UnsupportedUriSchemeIdentified, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().UnsupportedUriSchemeIdentified(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_NewWindowRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(NewWindowRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const&);
            *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 WINRT_CALL remove_NewWindowRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(NewWindowRequested, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().NewWindowRequested(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL add_PermissionRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PermissionRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const&);
            *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 WINRT_CALL remove_PermissionRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(PermissionRequested, WINRT_WRAP(void), winrt::event_token const&);
        this->shim().PermissionRequested(*reinterpret_cast<winrt::event_token const*>(&token));
        return 0;
    }

    int32_t WINRT_CALL AddWebAllowedObject(void* name, void* pObject) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AddWebAllowedObject, WINRT_WRAP(void), hstring const&, Windows::Foundation::IInspectable const&);
            this->shim().AddWebAllowedObject(*reinterpret_cast<hstring const*>(&name), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&pObject));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL DeferredPermissionRequestById(uint32_t id, void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DeferredPermissionRequestById, WINRT_WRAP(Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest), uint32_t);
            *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 WINRT_CALL get_XYFocusLeft(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusLeft, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_XYFocusLeft(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusLeft, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            this->shim().XYFocusLeft(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusRight(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusRight, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusRight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_XYFocusRight(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusRight, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            this->shim().XYFocusRight(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusUp(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusUp, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusUp());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_XYFocusUp(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusUp, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            this->shim().XYFocusUp(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusDown(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusDown, WINRT_WRAP(Windows::UI::Xaml::DependencyObject));
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusDown());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_XYFocusDown(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusDown, WINRT_WRAP(void), Windows::UI::Xaml::DependencyObject const&);
            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 WINRT_CALL add_SeparateProcessLost(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SeparateProcessLost, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const&);
            *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 WINRT_CALL remove_SeparateProcessLost(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(SeparateProcessLost, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL add_WebResourceRequested(void* handler, winrt::event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(WebResourceRequested, WINRT_WRAP(winrt::event_token), Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> const&);
            *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 WINRT_CALL remove_WebResourceRequested(winrt::event_token token) noexcept final
    {
        typename D::abi_guard guard(this->shim());
        WINRT_ASSERT_DECLARATION(WebResourceRequested, WINRT_WRAP(void), winrt::event_token const&);
        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 WINRT_CALL get_SourceName(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceName, WINRT_WRAP(hstring));
            *value = detach_from<hstring>(this->shim().SourceName());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_SourceName(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceName, WINRT_WRAP(void), hstring const&);
            this->shim().SourceName(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Redraw() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Redraw, WINRT_WRAP(void));
            this->shim().Redraw();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL SetSource(void* source) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SetSource, WINRT_WRAP(void), Windows::UI::Xaml::Controls::WebView const&);
            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 WINRT_CALL get_SourceNameProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceNameProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PermissionType(Windows::UI::Xaml::Controls::WebViewPermissionType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PermissionType, WINRT_WRAP(Windows::UI::Xaml::Controls::WebViewPermissionType));
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionType>(this->shim().PermissionType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Id(uint32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Id, WINRT_WRAP(uint32_t));
            *value = detach_from<uint32_t>(this->shim().Id());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Allow() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Allow, WINRT_WRAP(void));
            this->shim().Allow();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Deny() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Deny, WINRT_WRAP(void));
            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 WINRT_CALL CreateInstanceWithExecutionMode(Windows::UI::Xaml::Controls::WebViewExecutionMode executionMode, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CreateInstanceWithExecutionMode, WINRT_WRAP(Windows::UI::Xaml::Controls::WebView), Windows::UI::Xaml::Controls::WebViewExecutionMode const&);
            *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 WINRT_CALL get_ExecutionTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ExecutionTime, WINRT_WRAP(Windows::Foundation::TimeSpan));
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().ExecutionTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_StopPageScriptExecution(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StopPageScriptExecution, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().StopPageScriptExecution());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_StopPageScriptExecution(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(StopPageScriptExecution, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsSuccess(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsSuccess, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsSuccess());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_WebErrorStatus(Windows::Web::WebErrorStatus* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(WebErrorStatus, WINRT_WRAP(Windows::Web::WebErrorStatus));
            *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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_WebErrorStatus(Windows::Web::WebErrorStatus* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(WebErrorStatus, WINRT_WRAP(Windows::Web::WebErrorStatus));
            *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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Cancel());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Cancel, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Referrer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Referrer, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Referrer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_PermissionType(Windows::UI::Xaml::Controls::WebViewPermissionType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PermissionType, WINRT_WRAP(Windows::UI::Xaml::Controls::WebViewPermissionType));
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionType>(this->shim().PermissionType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Id(uint32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Id, WINRT_WRAP(uint32_t));
            *value = detach_from<uint32_t>(this->shim().Id());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_State(Windows::UI::Xaml::Controls::WebViewPermissionState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(State, WINRT_WRAP(Windows::UI::Xaml::Controls::WebViewPermissionState));
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionState>(this->shim().State());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Defer() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Defer, WINRT_WRAP(void));
            this->shim().Defer();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Allow() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Allow, WINRT_WRAP(void));
            this->shim().Allow();
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL Deny() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Deny, WINRT_WRAP(void));
            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 WINRT_CALL get_PermissionRequest(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(PermissionRequest, WINRT_WRAP(Windows::UI::Xaml::Controls::WebViewPermissionRequest));
            *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 WINRT_CALL get_IsJavaScriptEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsJavaScriptEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsJavaScriptEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsJavaScriptEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsJavaScriptEnabled, WINRT_WRAP(void), bool);
            this->shim().IsJavaScriptEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_IsIndexedDBEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsIndexedDBEnabled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().IsIndexedDBEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_IsIndexedDBEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(IsIndexedDBEnabled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_AnyScriptNotifyUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AnyScriptNotifyUri, WINRT_WRAP(Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>));
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>>(this->shim().AnyScriptNotifyUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(SourceProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_AllowedScriptNotifyUrisProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(AllowedScriptNotifyUrisProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AllowedScriptNotifyUrisProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DataTransferPackageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DataTransferPackageProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_CanGoBackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanGoBackProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoBackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_CanGoForwardProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(CanGoForwardProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoForwardProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DocumentTitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DocumentTitleProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DocumentTitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_DefaultBackgroundColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultBackgroundColorProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_ContainsFullScreenElementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ContainsFullScreenElementProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_DefaultExecutionMode(Windows::UI::Xaml::Controls::WebViewExecutionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(DefaultExecutionMode, WINRT_WRAP(Windows::UI::Xaml::Controls::WebViewExecutionMode));
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewExecutionMode>(this->shim().DefaultExecutionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL ClearTemporaryWebDataAsync(void** operation) noexcept final
    {
        try
        {
            *operation = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ClearTemporaryWebDataAsync, WINRT_WRAP(Windows::Foundation::IAsyncAction));
            *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 WINRT_CALL get_XYFocusLeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusLeftProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusRightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusRightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusRightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusUpProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusUpProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusUpProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_XYFocusDownProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(XYFocusDownProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(bool));
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Handled, WINRT_WRAP(void), bool);
            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 WINRT_CALL get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Uri, WINRT_WRAP(Windows::Foundation::Uri));
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Referrer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Referrer, WINRT_WRAP(Windows::Foundation::Uri));
            *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 WINRT_CALL get_MediaType(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MediaType, WINRT_WRAP(hstring));
            *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 WINRT_CALL get_Request(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Request, WINRT_WRAP(Windows::Web::Http::HttpRequestMessage));
            *value = detach_from<Windows::Web::Http::HttpRequestMessage>(this->shim().Request());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Response(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Response, WINRT_WRAP(Windows::Web::Http::HttpResponseMessage));
            *value = detach_from<Windows::Web::Http::HttpResponseMessage>(this->shim().Response());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Response(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Response, WINRT_WRAP(void), Windows::Web::Http::HttpResponseMessage const&);
            this->shim().Response(*reinterpret_cast<Windows::Web::Http::HttpResponseMessage const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL GetDeferral(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(GetDeferral, WINRT_WRAP(Windows::Foundation::Deferral));
            *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 WINRT_CALL get_ItemWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidth, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidth, WINRT_WRAP(void), double);
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeight, WINRT_WRAP(double));
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_ItemHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeight, WINRT_WRAP(void), double);
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(Windows::UI::Xaml::Controls::Orientation));
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(Orientation, WINRT_WRAP(void), Windows::UI::Xaml::Controls::Orientation const&);
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalChildrenAlignment, WINRT_WRAP(Windows::UI::Xaml::HorizontalAlignment));
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalChildrenAlignment, WINRT_WRAP(void), Windows::UI::Xaml::HorizontalAlignment const&);
            this->shim().HorizontalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalChildrenAlignment, WINRT_WRAP(Windows::UI::Xaml::VerticalAlignment));
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalChildrenAlignment, WINRT_WRAP(void), Windows::UI::Xaml::VerticalAlignment const&);
            this->shim().VerticalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaximumRowsOrColumns(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumns, WINRT_WRAP(int32_t));
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL put_MaximumRowsOrColumns(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumns, WINRT_WRAP(void), int32_t);
            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 WINRT_CALL get_ItemWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemWidthProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_ItemHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(ItemHeightProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(OrientationProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_HorizontalChildrenAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(HorizontalChildrenAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_VerticalChildrenAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(VerticalChildrenAlignmentProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }

    int32_t WINRT_CALL get_MaximumRowsOrColumnsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            WINRT_ASSERT_DECLARATION(MaximumRowsOrColumnsProperty, WINRT_WRAP(Windows::UI::Xaml::DependencyProperty));
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    }
};

template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IAppBarOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IAppBarOverrides>
{
    void OnClosed(Windows::Foundation::IInspectable const& e)
    {
        Windows::UI::Xaml::Controls::IAppBarOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnClosed(e);
        }
        return this->shim().OnClosed(e);
    }
    void OnOpened(Windows::Foundation::IInspectable const& e)
    {
        Windows::UI::Xaml::Controls::IAppBarOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnOpened(e);
        }
        return this->shim().OnOpened(e);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IAppBarOverrides3>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IAppBarOverrides3>
{
    void OnClosing(Windows::Foundation::IInspectable const& e)
    {
        Windows::UI::Xaml::Controls::IAppBarOverrides3 overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnClosing(e);
        }
        return this->shim().OnClosing(e);
    }
    void OnOpening(Windows::Foundation::IInspectable const& e)
    {
        Windows::UI::Xaml::Controls::IAppBarOverrides3 overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnOpening(e);
        }
        return this->shim().OnOpening(e);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IComboBoxOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IComboBoxOverrides>
{
    void OnDropDownClosed(Windows::Foundation::IInspectable const& e)
    {
        Windows::UI::Xaml::Controls::IComboBoxOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnDropDownClosed(e);
        }
        return this->shim().OnDropDownClosed(e);
    }
    void OnDropDownOpened(Windows::Foundation::IInspectable const& e)
    {
        Windows::UI::Xaml::Controls::IComboBoxOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnDropDownOpened(e);
        }
        return this->shim().OnDropDownOpened(e);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IContentControlOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IContentControlOverrides>
{
    void OnContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent)
    {
        Windows::UI::Xaml::Controls::IContentControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnContentChanged(oldContent, newContent);
        }
        return this->shim().OnContentChanged(oldContent, newContent);
    }
    void OnContentTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldContentTemplate, Windows::UI::Xaml::DataTemplate const& newContentTemplate)
    {
        Windows::UI::Xaml::Controls::IContentControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
        }
        return this->shim().OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
    }
    void OnContentTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector)
    {
        Windows::UI::Xaml::Controls::IContentControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
        }
        return this->shim().OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IContentPresenterOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IContentPresenterOverrides>
{
    void OnContentTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldContentTemplate, Windows::UI::Xaml::DataTemplate const& newContentTemplate)
    {
        Windows::UI::Xaml::Controls::IContentPresenterOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
        }
        return this->shim().OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
    }
    void OnContentTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector)
    {
        Windows::UI::Xaml::Controls::IContentPresenterOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
        }
        return this->shim().OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IControlOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IControlOverrides>
{
    void OnPointerEntered(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPointerEntered(e);
        }
        return this->shim().OnPointerEntered(e);
    }
    void OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPointerPressed(e);
        }
        return this->shim().OnPointerPressed(e);
    }
    void OnPointerMoved(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPointerMoved(e);
        }
        return this->shim().OnPointerMoved(e);
    }
    void OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPointerReleased(e);
        }
        return this->shim().OnPointerReleased(e);
    }
    void OnPointerExited(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPointerExited(e);
        }
        return this->shim().OnPointerExited(e);
    }
    void OnPointerCaptureLost(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPointerCaptureLost(e);
        }
        return this->shim().OnPointerCaptureLost(e);
    }
    void OnPointerCanceled(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPointerCanceled(e);
        }
        return this->shim().OnPointerCanceled(e);
    }
    void OnPointerWheelChanged(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPointerWheelChanged(e);
        }
        return this->shim().OnPointerWheelChanged(e);
    }
    void OnTapped(Windows::UI::Xaml::Input::TappedRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnTapped(e);
        }
        return this->shim().OnTapped(e);
    }
    void OnDoubleTapped(Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnDoubleTapped(e);
        }
        return this->shim().OnDoubleTapped(e);
    }
    void OnHolding(Windows::UI::Xaml::Input::HoldingRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnHolding(e);
        }
        return this->shim().OnHolding(e);
    }
    void OnRightTapped(Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnRightTapped(e);
        }
        return this->shim().OnRightTapped(e);
    }
    void OnManipulationStarting(Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnManipulationStarting(e);
        }
        return this->shim().OnManipulationStarting(e);
    }
    void OnManipulationInertiaStarting(Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnManipulationInertiaStarting(e);
        }
        return this->shim().OnManipulationInertiaStarting(e);
    }
    void OnManipulationStarted(Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnManipulationStarted(e);
        }
        return this->shim().OnManipulationStarted(e);
    }
    void OnManipulationDelta(Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnManipulationDelta(e);
        }
        return this->shim().OnManipulationDelta(e);
    }
    void OnManipulationCompleted(Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnManipulationCompleted(e);
        }
        return this->shim().OnManipulationCompleted(e);
    }
    void OnKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnKeyUp(e);
        }
        return this->shim().OnKeyUp(e);
    }
    void OnKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnKeyDown(e);
        }
        return this->shim().OnKeyDown(e);
    }
    void OnGotFocus(Windows::UI::Xaml::RoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnGotFocus(e);
        }
        return this->shim().OnGotFocus(e);
    }
    void OnLostFocus(Windows::UI::Xaml::RoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnLostFocus(e);
        }
        return this->shim().OnLostFocus(e);
    }
    void OnDragEnter(Windows::UI::Xaml::DragEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnDragEnter(e);
        }
        return this->shim().OnDragEnter(e);
    }
    void OnDragLeave(Windows::UI::Xaml::DragEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnDragLeave(e);
        }
        return this->shim().OnDragLeave(e);
    }
    void OnDragOver(Windows::UI::Xaml::DragEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnDragOver(e);
        }
        return this->shim().OnDragOver(e);
    }
    void OnDrop(Windows::UI::Xaml::DragEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnDrop(e);
        }
        return this->shim().OnDrop(e);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IControlOverrides6>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IControlOverrides6>
{
    void OnPreviewKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides6 overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPreviewKeyDown(e);
        }
        return this->shim().OnPreviewKeyDown(e);
    }
    void OnPreviewKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides6 overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnPreviewKeyUp(e);
        }
        return this->shim().OnPreviewKeyUp(e);
    }
    void OnCharacterReceived(Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IControlOverrides6 overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnCharacterReceived(e);
        }
        return this->shim().OnCharacterReceived(e);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>
{
    Windows::UI::Xaml::DataTemplate SelectTemplateCore(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container)
    {
        Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.SelectTemplateCore(item, container);
        }
        return this->shim().SelectTemplateCore(item, container);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>
{
    Windows::UI::Xaml::DataTemplate SelectTemplateCore(Windows::Foundation::IInspectable const& item)
    {
        Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2 overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.SelectTemplateCore(item);
        }
        return this->shim().SelectTemplateCore(item);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>
{
    Windows::UI::Xaml::Controls::GroupStyle SelectGroupStyleCore(Windows::Foundation::IInspectable const& group, uint32_t level)
    {
        Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.SelectGroupStyleCore(group, level);
        }
        return this->shim().SelectGroupStyleCore(group, level);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>
{
    Windows::UI::Input::Inking::InkDrawingAttributes CreateInkDrawingAttributesCore(Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth)
    {
        Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.CreateInkDrawingAttributesCore(brush, strokeWidth);
        }
        return this->shim().CreateInkDrawingAttributesCore(brush, strokeWidth);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IItemsControlOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IItemsControlOverrides>
{
    bool IsItemItsOwnContainerOverride(Windows::Foundation::IInspectable const& item)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.IsItemItsOwnContainerOverride(item);
        }
        return this->shim().IsItemItsOwnContainerOverride(item);
    }
    Windows::UI::Xaml::DependencyObject GetContainerForItemOverride()
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.GetContainerForItemOverride();
        }
        return this->shim().GetContainerForItemOverride();
    }
    void ClearContainerForItemOverride(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& item)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.ClearContainerForItemOverride(element, item);
        }
        return this->shim().ClearContainerForItemOverride(element, item);
    }
    void PrepareContainerForItemOverride(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& item)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.PrepareContainerForItemOverride(element, item);
        }
        return this->shim().PrepareContainerForItemOverride(element, item);
    }
    void OnItemsChanged(Windows::Foundation::IInspectable const& e)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnItemsChanged(e);
        }
        return this->shim().OnItemsChanged(e);
    }
    void OnItemContainerStyleChanged(Windows::UI::Xaml::Style const& oldItemContainerStyle, Windows::UI::Xaml::Style const& newItemContainerStyle)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnItemContainerStyleChanged(oldItemContainerStyle, newItemContainerStyle);
        }
        return this->shim().OnItemContainerStyleChanged(oldItemContainerStyle, newItemContainerStyle);
    }
    void OnItemContainerStyleSelectorChanged(Windows::UI::Xaml::Controls::StyleSelector const& oldItemContainerStyleSelector, Windows::UI::Xaml::Controls::StyleSelector const& newItemContainerStyleSelector)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnItemContainerStyleSelectorChanged(oldItemContainerStyleSelector, newItemContainerStyleSelector);
        }
        return this->shim().OnItemContainerStyleSelectorChanged(oldItemContainerStyleSelector, newItemContainerStyleSelector);
    }
    void OnItemTemplateChanged(Windows::UI::Xaml::DataTemplate const& oldItemTemplate, Windows::UI::Xaml::DataTemplate const& newItemTemplate)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnItemTemplateChanged(oldItemTemplate, newItemTemplate);
        }
        return this->shim().OnItemTemplateChanged(oldItemTemplate, newItemTemplate);
    }
    void OnItemTemplateSelectorChanged(Windows::UI::Xaml::Controls::DataTemplateSelector const& oldItemTemplateSelector, Windows::UI::Xaml::Controls::DataTemplateSelector const& newItemTemplateSelector)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnItemTemplateSelectorChanged(oldItemTemplateSelector, newItemTemplateSelector);
        }
        return this->shim().OnItemTemplateSelectorChanged(oldItemTemplateSelector, newItemTemplateSelector);
    }
    void OnGroupStyleSelectorChanged(Windows::UI::Xaml::Controls::GroupStyleSelector const& oldGroupStyleSelector, Windows::UI::Xaml::Controls::GroupStyleSelector const& newGroupStyleSelector)
    {
        Windows::UI::Xaml::Controls::IItemsControlOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnGroupStyleSelectorChanged(oldGroupStyleSelector, newGroupStyleSelector);
        }
        return this->shim().OnGroupStyleSelectorChanged(oldGroupStyleSelector, newGroupStyleSelector);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IPageOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IPageOverrides>
{
    void OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IPageOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnNavigatedFrom(e);
        }
        return this->shim().OnNavigatedFrom(e);
    }
    void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IPageOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnNavigatedTo(e);
        }
        return this->shim().OnNavigatedTo(e);
    }
    void OnNavigatingFrom(Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IPageOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnNavigatingFrom(e);
        }
        return this->shim().OnNavigatingFrom(e);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IStyleSelectorOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IStyleSelectorOverrides>
{
    Windows::UI::Xaml::Style SelectStyleCore(Windows::Foundation::IInspectable const& item, Windows::UI::Xaml::DependencyObject const& container)
    {
        Windows::UI::Xaml::Controls::IStyleSelectorOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.SelectStyleCore(item, container);
        }
        return this->shim().SelectStyleCore(item, container);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IToggleSwitchOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IToggleSwitchOverrides>
{
    void OnToggled()
    {
        Windows::UI::Xaml::Controls::IToggleSwitchOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnToggled();
        }
        return this->shim().OnToggled();
    }
    void OnOnContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent)
    {
        Windows::UI::Xaml::Controls::IToggleSwitchOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnOnContentChanged(oldContent, newContent);
        }
        return this->shim().OnOnContentChanged(oldContent, newContent);
    }
    void OnOffContentChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent)
    {
        Windows::UI::Xaml::Controls::IToggleSwitchOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnOffContentChanged(oldContent, newContent);
        }
        return this->shim().OnOffContentChanged(oldContent, newContent);
    }
    void OnHeaderChanged(Windows::Foundation::IInspectable const& oldContent, Windows::Foundation::IInspectable const& newContent)
    {
        Windows::UI::Xaml::Controls::IToggleSwitchOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnHeaderChanged(oldContent, newContent);
        }
        return this->shim().OnHeaderChanged(oldContent, newContent);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>
{
    void OnItemsChanged(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const& args)
    {
        Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnItemsChanged(sender, args);
        }
        return this->shim().OnItemsChanged(sender, args);
    }
    void OnClearChildren()
    {
        Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnClearChildren();
        }
        return this->shim().OnClearChildren();
    }
    void BringIndexIntoView(int32_t index)
    {
        Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.BringIndexIntoView(index);
        }
        return this->shim().BringIndexIntoView(index);
    }
};
template <typename T, typename D>
struct WINRT_EBO produce_dispatch_to_overridable<T, D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>
    : produce_dispatch_to_overridable_base<T, D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>
{
    void OnCleanUpVirtualizedItem(Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e)
    {
        Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides overridable = this->shim_overridable();
        if (overridable)
        {
            return overridable.OnCleanUpVirtualizedItem(e);
        }
        return this->shim().OnCleanUpVirtualizedItem(e);
    }
};
}

WINRT_EXPORT namespace winrt::Windows::UI::Xaml::Controls {

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 Windows::UI::Xaml::DependencyProperty AppBar::IsOpenProperty()
{
    return impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics>([&](auto&& f) { return f.IsOpenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBar::IsStickyProperty()
{
    return impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics>([&](auto&& f) { return f.IsStickyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBar::ClosedDisplayModeProperty()
{
    return impl::call_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics2>([&](auto&& f) { return f.ClosedDisplayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty AppBarButton::LabelProperty()
{
    return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>([&](auto&& f) { return f.LabelProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::IconProperty()
{
    return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>([&](auto&& f) { return f.IconProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::IsCompactProperty()
{
    return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>([&](auto&& f) { return f.IsCompactProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::LabelPositionProperty()
{
    return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>([&](auto&& f) { return f.LabelPositionProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::IsInOverflowProperty()
{
    return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>([&](auto&& f) { return f.IsInOverflowProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::DynamicOverflowOrderProperty()
{
    return impl::call_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>([&](auto&& f) { return f.DynamicOverflowOrderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty AppBarElementContainer::IsCompactProperty()
{
    return impl::call_factory<AppBarElementContainer, Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>([&](auto&& f) { return f.IsCompactProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarElementContainer::IsInOverflowProperty()
{
    return impl::call_factory<AppBarElementContainer, Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>([&](auto&& f) { return f.IsInOverflowProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty AppBarSeparator::IsCompactProperty()
{
    return impl::call_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>([&](auto&& f) { return f.IsCompactProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarSeparator::IsInOverflowProperty()
{
    return impl::call_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>([&](auto&& f) { return f.IsInOverflowProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty AppBarToggleButton::LabelProperty()
{
    return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>([&](auto&& f) { return f.LabelProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::IconProperty()
{
    return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>([&](auto&& f) { return f.IconProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::IsCompactProperty()
{
    return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>([&](auto&& f) { return f.IsCompactProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::LabelPositionProperty()
{
    return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>([&](auto&& f) { return f.LabelPositionProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::IsInOverflowProperty()
{
    return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>([&](auto&& f) { return f.IsInOverflowProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::DynamicOverflowOrderProperty()
{
    return impl::call_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>([&](auto&& f) { return f.DynamicOverflowOrderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty AutoSuggestBox::MaxSuggestionListHeightProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.MaxSuggestionListHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::IsSuggestionListOpenProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.IsSuggestionListOpenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::TextMemberPathProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.TextMemberPathProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::TextProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.TextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::UpdateTextOnSelectProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.UpdateTextOnSelectProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::PlaceholderTextProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.PlaceholderTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::HeaderProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::AutoMaximizeSuggestionAreaProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.AutoMaximizeSuggestionAreaProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::TextBoxStyleProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>([&](auto&& f) { return f.TextBoxStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::QueryIconProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>([&](auto&& f) { return f.QueryIconProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::LightDismissOverlayModeProperty()
{
    return impl::call_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty BitmapIcon::UriSourceProperty()
{
    return impl::call_factory<BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconStatics>([&](auto&& f) { return f.UriSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty BitmapIconSource::UriSourceProperty()
{
    return impl::call_factory<BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>([&](auto&& f) { return f.UriSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Border::BorderBrushProperty()
{
    return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.BorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Border::BorderThicknessProperty()
{
    return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.BorderThicknessProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Border::BackgroundProperty()
{
    return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.BackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Border::CornerRadiusProperty()
{
    return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.CornerRadiusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Border::PaddingProperty()
{
    return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Border::ChildTransitionsProperty()
{
    return impl::call_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>([&](auto&& f) { return f.ChildTransitionsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty CalendarDatePicker::DateProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.DateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::IsCalendarOpenProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.IsCalendarOpenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::DateFormatProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.DateFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::PlaceholderTextProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.PlaceholderTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::HeaderProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::HeaderTemplateProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::CalendarViewStyleProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.CalendarViewStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::MinDateProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.MinDateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::MaxDateProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.MaxDateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::IsTodayHighlightedProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.IsTodayHighlightedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::DisplayModeProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.DisplayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::FirstDayOfWeekProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.FirstDayOfWeekProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::DayOfWeekFormatProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.DayOfWeekFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::CalendarIdentifierProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.CalendarIdentifierProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::IsOutOfScopeEnabledProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.IsOutOfScopeEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::IsGroupLabelVisibleProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>([&](auto&& f) { return f.IsGroupLabelVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::LightDismissOverlayModeProperty()
{
    return impl::call_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty CalendarView::CalendarIdentifierProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarIdentifierProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayOfWeekFormatProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayOfWeekFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::IsGroupLabelVisibleProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.IsGroupLabelVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DisplayModeProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DisplayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstDayOfWeekProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstDayOfWeekProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::IsOutOfScopeEnabledProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.IsOutOfScopeEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::IsTodayHighlightedProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.IsTodayHighlightedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MaxDateProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MaxDateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MinDateProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MinDateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::NumberOfWeeksInViewProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.NumberOfWeeksInViewProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedDatesProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedDatesProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectionModeProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::TemplateSettingsProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.TemplateSettingsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FocusBorderBrushProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FocusBorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedHoverBorderBrushProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedHoverBorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedPressedBorderBrushProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedPressedBorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedBorderBrushProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedBorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::HoverBorderBrushProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.HoverBorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::PressedBorderBrushProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.PressedBorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarItemBorderBrushProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarItemBorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::OutOfScopeBackgroundProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.OutOfScopeBackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarItemBackgroundProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarItemBackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::PressedForegroundProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.PressedForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::TodayForegroundProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.TodayForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::BlackoutForegroundProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.BlackoutForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedForegroundProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.SelectedForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::OutOfScopeForegroundProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.OutOfScopeForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarItemForegroundProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarItemForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayItemFontFamilyProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayItemFontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayItemFontSizeProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayItemFontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayItemFontStyleProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayItemFontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayItemFontWeightProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.DayItemFontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::TodayFontWeightProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.TodayFontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfMonthLabelFontFamilyProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfMonthLabelFontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfMonthLabelFontSizeProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfMonthLabelFontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfMonthLabelFontStyleProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfMonthLabelFontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfMonthLabelFontWeightProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfMonthLabelFontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MonthYearItemFontFamilyProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MonthYearItemFontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MonthYearItemFontSizeProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MonthYearItemFontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MonthYearItemFontStyleProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MonthYearItemFontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MonthYearItemFontWeightProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.MonthYearItemFontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfYearDecadeLabelFontFamilyProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfYearDecadeLabelFontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfYearDecadeLabelFontSizeProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfYearDecadeLabelFontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfYearDecadeLabelFontStyleProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfYearDecadeLabelFontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfYearDecadeLabelFontWeightProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.FirstOfYearDecadeLabelFontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::HorizontalDayItemAlignmentProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.HorizontalDayItemAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::VerticalDayItemAlignmentProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.VerticalDayItemAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::HorizontalFirstOfMonthLabelAlignmentProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.HorizontalFirstOfMonthLabelAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::VerticalFirstOfMonthLabelAlignmentProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.VerticalFirstOfMonthLabelAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarItemBorderThicknessProperty()
{
    return impl::call_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>([&](auto&& f) { return f.CalendarItemBorderThicknessProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty CalendarViewDayItem::IsBlackoutProperty()
{
    return impl::call_factory<CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>([&](auto&& f) { return f.IsBlackoutProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Canvas::LeftProperty()
{
    return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.LeftProperty(); });
}

inline double 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 void 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 Windows::UI::Xaml::DependencyProperty Canvas::TopProperty()
{
    return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.TopProperty(); });
}

inline double 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 void 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 Windows::UI::Xaml::DependencyProperty Canvas::ZIndexProperty()
{
    return impl::call_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>([&](auto&& f) { return f.ZIndexProperty(); });
}

inline int32_t 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 void 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 Windows::UI::Xaml::DependencyProperty CaptureElement::SourceProperty()
{
    return impl::call_factory<CaptureElement, Windows::UI::Xaml::Controls::ICaptureElementStatics>([&](auto&& f) { return f.SourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ColorPicker::ColorProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.ColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::PreviousColorProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.PreviousColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsAlphaEnabledProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsAlphaEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsColorSpectrumVisibleProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsColorSpectrumVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsColorPreviewVisibleProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsColorPreviewVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsColorSliderVisibleProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsColorSliderVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsAlphaSliderVisibleProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsAlphaSliderVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsMoreButtonVisibleProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsMoreButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsColorChannelTextInputVisibleProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsColorChannelTextInputVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsAlphaTextInputVisibleProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsAlphaTextInputVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsHexInputVisibleProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.IsHexInputVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MinHueProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MinHueProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MaxHueProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MaxHueProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MinSaturationProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MinSaturationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MaxSaturationProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MaxSaturationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MinValueProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MinValueProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MaxValueProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.MaxValueProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::ColorSpectrumShapeProperty()
{
    return impl::call_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>([&](auto&& f) { return f.ColorSpectrumShapeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ColumnDefinition::WidthProperty()
{
    return impl::call_factory<ColumnDefinition, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>([&](auto&& f) { return f.WidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ColumnDefinition::MaxWidthProperty()
{
    return impl::call_factory<ColumnDefinition, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>([&](auto&& f) { return f.MaxWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ComboBox::IsDropDownOpenProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics>([&](auto&& f) { return f.IsDropDownOpenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::MaxDropDownHeightProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics>([&](auto&& f) { return f.MaxDropDownHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::HeaderProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::HeaderTemplateProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::PlaceholderTextProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>([&](auto&& f) { return f.PlaceholderTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::LightDismissOverlayModeProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics3>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::IsTextSearchEnabledProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics3>([&](auto&& f) { return f.IsTextSearchEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::SelectionChangedTriggerProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics4>([&](auto&& f) { return f.SelectionChangedTriggerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::PlaceholderForegroundProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics5>([&](auto&& f) { return f.PlaceholderForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::IsEditableProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics6>([&](auto&& f) { return f.IsEditableProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::TextProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics6>([&](auto&& f) { return f.TextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::TextBoxStyleProperty()
{
    return impl::call_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics6>([&](auto&& f) { return f.TextBoxStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty CommandBar::PrimaryCommandsProperty()
{
    return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics>([&](auto&& f) { return f.PrimaryCommandsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::SecondaryCommandsProperty()
{
    return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics>([&](auto&& f) { return f.SecondaryCommandsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::CommandBarOverflowPresenterStyleProperty()
{
    return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics2>([&](auto&& f) { return f.CommandBarOverflowPresenterStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::DefaultLabelPositionProperty()
{
    return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics3>([&](auto&& f) { return f.DefaultLabelPositionProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::OverflowButtonVisibilityProperty()
{
    return impl::call_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics3>([&](auto&& f) { return f.OverflowButtonVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ContentControl::ContentProperty()
{
    return impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>([&](auto&& f) { return f.ContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentControl::ContentTemplateProperty()
{
    return impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>([&](auto&& f) { return f.ContentTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentControl::ContentTemplateSelectorProperty()
{
    return impl::call_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>([&](auto&& f) { return f.ContentTemplateSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ContentDialog::TitleProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.TitleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::TitleTemplateProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.TitleTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::FullSizeDesiredProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.FullSizeDesiredProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::PrimaryButtonTextProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.PrimaryButtonTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::SecondaryButtonTextProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.SecondaryButtonTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::PrimaryButtonCommandProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.PrimaryButtonCommandProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::SecondaryButtonCommandProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.SecondaryButtonCommandProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::PrimaryButtonCommandParameterProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.PrimaryButtonCommandParameterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::SecondaryButtonCommandParameterProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.SecondaryButtonCommandParameterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::IsPrimaryButtonEnabledProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.IsPrimaryButtonEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::IsSecondaryButtonEnabledProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>([&](auto&& f) { return f.IsSecondaryButtonEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::CloseButtonTextProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.CloseButtonTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::CloseButtonCommandProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.CloseButtonCommandProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::CloseButtonCommandParameterProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.CloseButtonCommandParameterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::PrimaryButtonStyleProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.PrimaryButtonStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::SecondaryButtonStyleProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.SecondaryButtonStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::CloseButtonStyleProperty()
{
    return impl::call_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>([&](auto&& f) { return f.CloseButtonStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ContentPresenter::ContentProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ContentTemplateProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ContentTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ContentTemplateSelectorProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ContentTemplateSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ContentTransitionsProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ContentTransitionsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontSizeProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontFamilyProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontWeightProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontStyleProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontStretchProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.FontStretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::CharacterSpacingProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.CharacterSpacingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ForegroundProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>([&](auto&& f) { return f.ForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::OpticalMarginAlignmentProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics2>([&](auto&& f) { return f.OpticalMarginAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::TextLineBoundsProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics2>([&](auto&& f) { return f.TextLineBoundsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::IsTextScaleFactorEnabledProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics3>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::TextWrappingProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.TextWrappingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::MaxLinesProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.MaxLinesProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::LineStackingStrategyProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.LineStackingStrategyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::LineHeightProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.LineHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::BorderBrushProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.BorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::BorderThicknessProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.BorderThicknessProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::CornerRadiusProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.CornerRadiusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::PaddingProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::BackgroundProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.BackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::HorizontalContentAlignmentProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.HorizontalContentAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::VerticalContentAlignmentProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>([&](auto&& f) { return f.VerticalContentAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::BackgroundSizingProperty()
{
    return impl::call_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics5>([&](auto&& f) { return f.BackgroundSizingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::FontSizeProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::FontFamilyProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::FontWeightProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::FontStyleProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::FontStretchProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FontStretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::CharacterSpacingProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.CharacterSpacingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::ForegroundProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.ForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::IsTabStopProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.IsTabStopProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::IsEnabledProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.IsEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::TabIndexProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.TabIndexProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::TabNavigationProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.TabNavigationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::TemplateProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.TemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::PaddingProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::HorizontalContentAlignmentProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.HorizontalContentAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::VerticalContentAlignmentProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.VerticalContentAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::BackgroundProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.BackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::BorderThicknessProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.BorderThicknessProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::BorderBrushProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.BorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::DefaultStyleKeyProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.DefaultStyleKeyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::FocusStateProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>([&](auto&& f) { return f.FocusStateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::IsTextScaleFactorEnabledProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics2>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::UseSystemFocusVisualsProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>([&](auto&& f) { return f.UseSystemFocusVisualsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::IsTemplateFocusTargetProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>([&](auto&& f) { return f.IsTemplateFocusTargetProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty Control::IsFocusEngagementEnabledProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.IsFocusEngagementEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::IsFocusEngagedProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.IsFocusEngagedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::RequiresPointerProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.RequiresPointerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::XYFocusLeftProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.XYFocusLeftProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::XYFocusRightProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.XYFocusRightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::XYFocusUpProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.XYFocusUpProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::XYFocusDownProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.XYFocusDownProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::ElementSoundModeProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>([&](auto&& f) { return f.ElementSoundModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::DefaultStyleResourceUriProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>([&](auto&& f) { return f.DefaultStyleResourceUriProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Control::IsTemplateKeyTipTargetProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>([&](auto&& f) { return f.IsTemplateKeyTipTargetProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty Control::BackgroundSizingProperty()
{
    return impl::call_factory<Control, Windows::UI::Xaml::Controls::IControlStatics7>([&](auto&& f) { return f.BackgroundSizingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty DatePicker::HeaderProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::HeaderTemplateProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::CalendarIdentifierProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.CalendarIdentifierProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::DateProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.DateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::DayVisibleProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.DayVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::MonthVisibleProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.MonthVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::YearVisibleProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.YearVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::DayFormatProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.DayFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::MonthFormatProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.MonthFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::YearFormatProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.YearFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::MinYearProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.MinYearProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::MaxYearProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.MaxYearProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::OrientationProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::LightDismissOverlayModeProperty()
{
    return impl::call_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics2>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty DatePickerFlyout::CalendarIdentifierProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.CalendarIdentifierProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::DateProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.DateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::DayVisibleProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.DayVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::MonthVisibleProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.MonthVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::YearVisibleProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.YearVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::MinYearProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.MinYearProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::MaxYearProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>([&](auto&& f) { return f.MaxYearProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::DayFormatProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>([&](auto&& f) { return f.DayFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::MonthFormatProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>([&](auto&& f) { return f.MonthFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::YearFormatProperty()
{
    return impl::call_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>([&](auto&& f) { return f.YearFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyoutItem::PrimaryTextProperty()
{
    return impl::call_factory<DatePickerFlyoutItem, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>([&](auto&& f) { return f.PrimaryTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyoutItem::SecondaryTextProperty()
{
    return impl::call_factory<DatePickerFlyoutItem, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>([&](auto&& f) { return f.SecondaryTextProperty(); });
}

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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Flyout::ContentProperty()
{
    return impl::call_factory<Flyout, Windows::UI::Xaml::Controls::IFlyoutStatics>([&](auto&& f) { return f.ContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 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 Windows::UI::Xaml::DependencyProperty FontIcon::GlyphProperty()
{
    return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.GlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::FontSizeProperty()
{
    return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.FontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::FontFamilyProperty()
{
    return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::FontWeightProperty()
{
    return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.FontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::FontStyleProperty()
{
    return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>([&](auto&& f) { return f.FontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::IsTextScaleFactorEnabledProperty()
{
    return impl::call_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics2>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty FontIconSource::GlyphProperty()
{
    return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.GlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::FontSizeProperty()
{
    return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.FontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::FontFamilyProperty()
{
    return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::FontWeightProperty()
{
    return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.FontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::FontStyleProperty()
{
    return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.FontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::IsTextScaleFactorEnabledProperty()
{
    return impl::call_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Frame::CacheSizeProperty()
{
    return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.CacheSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Frame::CanGoBackProperty()
{
    return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.CanGoBackProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Frame::CanGoForwardProperty()
{
    return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.CanGoForwardProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Frame::CurrentSourcePageTypeProperty()
{
    return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.CurrentSourcePageTypeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Frame::SourcePageTypeProperty()
{
    return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.SourcePageTypeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Frame::BackStackDepthProperty()
{
    return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>([&](auto&& f) { return f.BackStackDepthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Frame::BackStackProperty()
{
    return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics2>([&](auto&& f) { return f.BackStackProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Frame::ForwardStackProperty()
{
    return impl::call_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics2>([&](auto&& f) { return f.ForwardStackProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Grid::RowProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.RowProperty(); });
}

inline int32_t 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 void 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 Windows::UI::Xaml::DependencyProperty Grid::ColumnProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.ColumnProperty(); });
}

inline int32_t 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 void 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 Windows::UI::Xaml::DependencyProperty Grid::RowSpanProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.RowSpanProperty(); });
}

inline int32_t 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 void 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 Windows::UI::Xaml::DependencyProperty Grid::ColumnSpanProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>([&](auto&& f) { return f.ColumnSpanProperty(); });
}

inline int32_t 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 void 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 Windows::UI::Xaml::DependencyProperty Grid::BorderBrushProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>([&](auto&& f) { return f.BorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Grid::BorderThicknessProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>([&](auto&& f) { return f.BorderThicknessProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Grid::CornerRadiusProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>([&](auto&& f) { return f.CornerRadiusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Grid::PaddingProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Grid::RowSpacingProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics3>([&](auto&& f) { return f.RowSpacingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Grid::ColumnSpacingProperty()
{
    return impl::call_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics3>([&](auto&& f) { return f.ColumnSpacingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty HandwritingView::PlacementTargetProperty()
{
    return impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>([&](auto&& f) { return f.PlacementTargetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty HandwritingView::PlacementAlignmentProperty()
{
    return impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>([&](auto&& f) { return f.PlacementAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty HandwritingView::IsOpenProperty()
{
    return impl::call_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>([&](auto&& f) { return f.IsOpenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Hub::HeaderProperty()
{
    return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Hub::HeaderTemplateProperty()
{
    return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Hub::OrientationProperty()
{
    return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Hub::DefaultSectionIndexProperty()
{
    return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.DefaultSectionIndexProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Hub::SemanticZoomOwnerProperty()
{
    return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.SemanticZoomOwnerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Hub::IsActiveViewProperty()
{
    return impl::call_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>([&](auto&& f) { return f.IsActiveViewProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty HubSection::HeaderProperty()
{
    return impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty HubSection::HeaderTemplateProperty()
{
    return impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty HubSection::ContentTemplateProperty()
{
    return impl::call_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>([&](auto&& f) { return f.ContentTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty HyperlinkButton::NavigateUriProperty()
{
    return impl::call_factory<HyperlinkButton, Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>([&](auto&& f) { return f.NavigateUriProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty IconElement::ForegroundProperty()
{
    return impl::call_factory<IconElement, Windows::UI::Xaml::Controls::IIconElementStatics>([&](auto&& f) { return f.ForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Image::SourceProperty()
{
    return impl::call_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>([&](auto&& f) { return f.SourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Image::StretchProperty()
{
    return impl::call_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>([&](auto&& f) { return f.StretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Image::NineGridProperty()
{
    return impl::call_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>([&](auto&& f) { return f.NineGridProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty InkToolbar::InitialControlsProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.InitialControlsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::ChildrenProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.ChildrenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::ActiveToolProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.ActiveToolProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::InkDrawingAttributesProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.InkDrawingAttributesProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::IsRulerButtonCheckedProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.IsRulerButtonCheckedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::TargetInkCanvasProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>([&](auto&& f) { return f.TargetInkCanvasProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::IsStencilButtonCheckedProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>([&](auto&& f) { return f.IsStencilButtonCheckedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::ButtonFlyoutPlacementProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>([&](auto&& f) { return f.ButtonFlyoutPlacementProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::OrientationProperty()
{
    return impl::call_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>([&](auto&& f) { return f.OrientationProperty(); });
}

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 Windows::UI::Xaml::DependencyProperty InkToolbarCustomPenButton::CustomPenProperty()
{
    return impl::call_factory<InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>([&](auto&& f) { return f.CustomPenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty InkToolbarFlyoutItem::KindProperty()
{
    return impl::call_factory<InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>([&](auto&& f) { return f.KindProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty InkToolbarMenuButton::IsExtensionGlyphShownProperty()
{
    return impl::call_factory<InkToolbarMenuButton, Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics>([&](auto&& f) { return f.IsExtensionGlyphShownProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::PaletteProperty()
{
    return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.PaletteProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::MinStrokeWidthProperty()
{
    return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.MinStrokeWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::MaxStrokeWidthProperty()
{
    return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.MaxStrokeWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::SelectedBrushProperty()
{
    return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.SelectedBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::SelectedBrushIndexProperty()
{
    return impl::call_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>([&](auto&& f) { return f.SelectedBrushIndexProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::RulerProperty()
{
    return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.RulerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::ProtractorProperty()
{
    return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.ProtractorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::SelectedStencilProperty()
{
    return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.SelectedStencilProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::IsRulerItemVisibleProperty()
{
    return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.IsRulerItemVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::IsProtractorItemVisibleProperty()
{
    return impl::call_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>([&](auto&& f) { return f.IsProtractorItemVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ItemsControl::ItemsSourceProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemsSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemTemplateProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemTemplateSelectorProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemTemplateSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemsPanelProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemsPanelProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::DisplayMemberPathProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.DisplayMemberPathProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemContainerStyleProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemContainerStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemContainerStyleSelectorProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemContainerStyleSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemContainerTransitionsProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.ItemContainerTransitionsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::GroupStyleSelectorProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.GroupStyleSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::IsGroupingProperty()
{
    return impl::call_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>([&](auto&& f) { return f.IsGroupingProperty(); });
}

inline Windows::UI::Xaml::Controls::ItemsControl 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 Windows::UI::Xaml::Controls::ItemsControl 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 Windows::UI::Xaml::DependencyProperty ItemsPresenter::HeaderProperty()
{
    return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::HeaderTemplateProperty()
{
    return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::HeaderTransitionsProperty()
{
    return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>([&](auto&& f) { return f.HeaderTransitionsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::PaddingProperty()
{
    return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::FooterProperty()
{
    return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>([&](auto&& f) { return f.FooterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::FooterTemplateProperty()
{
    return impl::call_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>([&](auto&& f) { return f.FooterTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ItemsStackPanel::GroupPaddingProperty()
{
    return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>([&](auto&& f) { return f.GroupPaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsStackPanel::OrientationProperty()
{
    return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsStackPanel::GroupHeaderPlacementProperty()
{
    return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>([&](auto&& f) { return f.GroupHeaderPlacementProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsStackPanel::CacheLengthProperty()
{
    return impl::call_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>([&](auto&& f) { return f.CacheLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::GroupPaddingProperty()
{
    return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.GroupPaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::OrientationProperty()
{
    return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::MaximumRowsOrColumnsProperty()
{
    return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.MaximumRowsOrColumnsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::ItemWidthProperty()
{
    return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.ItemWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::ItemHeightProperty()
{
    return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.ItemHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::GroupHeaderPlacementProperty()
{
    return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.GroupHeaderPlacementProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::CacheLengthProperty()
{
    return impl::call_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>([&](auto&& f) { return f.CacheLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ListBox::SelectionModeProperty()
{
    return impl::call_factory<ListBox, Windows::UI::Xaml::Controls::IListBoxStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ListPickerFlyout::ItemsSourceProperty()
{
    return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.ItemsSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::ItemTemplateProperty()
{
    return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.ItemTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::DisplayMemberPathProperty()
{
    return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.DisplayMemberPathProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectionModeProperty()
{
    return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectedIndexProperty()
{
    return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectedIndexProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectedItemProperty()
{
    return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectedItemProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectedValueProperty()
{
    return impl::call_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>([&](auto&& f) { return f.SelectedValueProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ListViewBase::SelectionModeProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsSwipeEnabledProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IsSwipeEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::CanDragItemsProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.CanDragItemsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::CanReorderItemsProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.CanReorderItemsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsItemClickEnabledProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IsItemClickEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::DataFetchSizeProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.DataFetchSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IncrementalLoadingThresholdProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IncrementalLoadingThresholdProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IncrementalLoadingTriggerProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IncrementalLoadingTriggerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::SemanticZoomOwnerProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.SemanticZoomOwnerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsActiveViewProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IsActiveViewProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsZoomedInViewProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.IsZoomedInViewProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::HeaderProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::HeaderTemplateProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::HeaderTransitionsProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>([&](auto&& f) { return f.HeaderTransitionsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::ShowsScrollingPlaceholdersProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>([&](auto&& f) { return f.ShowsScrollingPlaceholdersProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::FooterProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>([&](auto&& f) { return f.FooterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::FooterTemplateProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>([&](auto&& f) { return f.FooterTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::FooterTransitionsProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>([&](auto&& f) { return f.FooterTransitionsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::ReorderModeProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics3>([&](auto&& f) { return f.ReorderModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsMultiSelectCheckBoxEnabledProperty()
{
    return impl::call_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics4>([&](auto&& f) { return f.IsMultiSelectCheckBoxEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 hstring 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 Windows::Foundation::IAsyncAction 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 Windows::UI::Xaml::DependencyProperty MediaElement::PosterSourceProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.PosterSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::SourceProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.SourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsMutedProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.IsMutedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsAudioOnlyProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.IsAudioOnlyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AutoPlayProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AutoPlayProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::VolumeProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.VolumeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::BalanceProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.BalanceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::NaturalVideoHeightProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.NaturalVideoHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::NaturalVideoWidthProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.NaturalVideoWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::NaturalDurationProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.NaturalDurationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::PositionProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.PositionProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::DownloadProgressProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.DownloadProgressProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::BufferingProgressProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.BufferingProgressProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::DownloadProgressOffsetProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.DownloadProgressOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::CurrentStateProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.CurrentStateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::CanSeekProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.CanSeekProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::CanPauseProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.CanPauseProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AudioStreamCountProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AudioStreamCountProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AudioStreamIndexProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AudioStreamIndexProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::PlaybackRateProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.PlaybackRateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsLoopingProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.IsLoopingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::PlayToSourceProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.PlayToSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::DefaultPlaybackRateProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.DefaultPlaybackRateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AspectRatioWidthProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AspectRatioWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AspectRatioHeightProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AspectRatioHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::RealTimePlaybackProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.RealTimePlaybackProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AudioCategoryProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AudioCategoryProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AudioDeviceTypeProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.AudioDeviceTypeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::ProtectionManagerProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.ProtectionManagerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::Stereo3DVideoPackingModeProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.Stereo3DVideoPackingModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::Stereo3DVideoRenderModeProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.Stereo3DVideoRenderModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsStereo3DVideoProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.IsStereo3DVideoProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::ActualStereo3DVideoPackingModeProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>([&](auto&& f) { return f.ActualStereo3DVideoPackingModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AreTransportControlsEnabledProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>([&](auto&& f) { return f.AreTransportControlsEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::StretchProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>([&](auto&& f) { return f.StretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsFullWindowProperty()
{
    return impl::call_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>([&](auto&& f) { return f.IsFullWindowProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty MediaPlayerElement::SourceProperty()
{
    return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.SourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::AreTransportControlsEnabledProperty()
{
    return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.AreTransportControlsEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::PosterSourceProperty()
{
    return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.PosterSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::StretchProperty()
{
    return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.StretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::AutoPlayProperty()
{
    return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.AutoPlayProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::IsFullWindowProperty()
{
    return impl::call_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>([&](auto&& f) { return f.IsFullWindowProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty MediaPlayerPresenter::MediaPlayerProperty()
{
    return impl::call_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>([&](auto&& f) { return f.MediaPlayerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerPresenter::StretchProperty()
{
    return impl::call_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>([&](auto&& f) { return f.StretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFullWindowButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFullWindowButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFullWindowEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFullWindowEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsZoomButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsZoomButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsZoomEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsZoomEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFastForwardButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFastForwardButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFastForwardEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFastForwardEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFastRewindButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFastRewindButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFastRewindEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsFastRewindEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsStopButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsStopButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsStopEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsStopEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsVolumeButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsVolumeButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsVolumeEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsVolumeEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsPlaybackRateButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsPlaybackRateButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsPlaybackRateEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsPlaybackRateEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSeekBarVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsSeekBarVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSeekEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsSeekEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsCompactProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>([&](auto&& f) { return f.IsCompactProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSkipForwardButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsSkipForwardButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSkipForwardEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsSkipForwardEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSkipBackwardButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsSkipBackwardButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSkipBackwardEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsSkipBackwardEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsNextTrackButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsNextTrackButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsPreviousTrackButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.IsPreviousTrackButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::FastPlayFallbackBehaviourProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>([&](auto&& f) { return f.FastPlayFallbackBehaviourProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::ShowAndHideAutomaticallyProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>([&](auto&& f) { return f.ShowAndHideAutomaticallyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsRepeatEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>([&](auto&& f) { return f.IsRepeatEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsRepeatButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>([&](auto&& f) { return f.IsRepeatButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsCompactOverlayButtonVisibleProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>([&](auto&& f) { return f.IsCompactOverlayButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsCompactOverlayEnabledProperty()
{
    return impl::call_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>([&](auto&& f) { return f.IsCompactOverlayEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControlsHelper::DropoutOrderProperty()
{
    return impl::call_factory<MediaTransportControlsHelper, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>([&](auto&& f) { return f.DropoutOrderProperty(); });
}

inline Windows::Foundation::IReference<int32_t> 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 void MediaTransportControlsHelper::SetDropoutOrder(Windows::UI::Xaml::UIElement const& element, optional<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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty MenuBarItem::TitleProperty()
{
    return impl::call_factory<MenuBarItem, Windows::UI::Xaml::Controls::IMenuBarItemStatics>([&](auto&& f) { return f.TitleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::TextProperty()
{
    return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>([&](auto&& f) { return f.TextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::CommandProperty()
{
    return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>([&](auto&& f) { return f.CommandProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::CommandParameterProperty()
{
    return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>([&](auto&& f) { return f.CommandParameterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::IconProperty()
{
    return impl::call_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>([&](auto&& f) { return f.IconProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 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 Windows::UI::Xaml::DependencyProperty MenuFlyoutSubItem::TextProperty()
{
    return impl::call_factory<MenuFlyoutSubItem, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>([&](auto&& f) { return f.TextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty NavigationView::IsPaneOpenProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.IsPaneOpenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::CompactModeThresholdWidthProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.CompactModeThresholdWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::ExpandedModeThresholdWidthProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.ExpandedModeThresholdWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneFooterProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.PaneFooterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::HeaderProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::HeaderTemplateProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::DisplayModeProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.DisplayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsSettingsVisibleProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.IsSettingsVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsPaneToggleButtonVisibleProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.IsPaneToggleButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::AlwaysShowHeaderProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.AlwaysShowHeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::CompactPaneLengthProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.CompactPaneLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::OpenPaneLengthProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.OpenPaneLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneToggleButtonStyleProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.PaneToggleButtonStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemsProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemsSourceProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemsSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::SelectedItemProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.SelectedItemProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::SettingsItemProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.SettingsItemProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::AutoSuggestBoxProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.AutoSuggestBoxProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemTemplateProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemTemplateSelectorProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemTemplateSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemContainerStyleProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemContainerStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemContainerStyleSelectorProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>([&](auto&& f) { return f.MenuItemContainerStyleSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsBackButtonVisibleProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>([&](auto&& f) { return f.IsBackButtonVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsBackEnabledProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>([&](auto&& f) { return f.IsBackEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneTitleProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>([&](auto&& f) { return f.PaneTitleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneDisplayModeProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.PaneDisplayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneHeaderProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.PaneHeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneCustomContentProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.PaneCustomContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::ContentOverlayProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.ContentOverlayProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsPaneVisibleProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.IsPaneVisibleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::SelectionFollowsFocusProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.SelectionFollowsFocusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::TemplateSettingsProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.TemplateSettingsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::ShoulderNavigationEnabledProperty()
{
    return impl::call_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics3>([&](auto&& f) { return f.ShoulderNavigationEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty NavigationViewItem::IconProperty()
{
    return impl::call_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemStatics>([&](auto&& f) { return f.IconProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationViewItem::CompactPaneLengthProperty()
{
    return impl::call_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemStatics>([&](auto&& f) { return f.CompactPaneLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty NavigationViewTemplateSettings::TopPaddingProperty()
{
    return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.TopPaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationViewTemplateSettings::OverflowButtonVisibilityProperty()
{
    return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.OverflowButtonVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationViewTemplateSettings::PaneToggleButtonVisibilityProperty()
{
    return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.PaneToggleButtonVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationViewTemplateSettings::BackButtonVisibilityProperty()
{
    return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.BackButtonVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationViewTemplateSettings::TopPaneVisibilityProperty()
{
    return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.TopPaneVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty NavigationViewTemplateSettings::LeftPaneVisibilityProperty()
{
    return impl::call_factory<NavigationViewTemplateSettings, Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>([&](auto&& f) { return f.LeftPaneVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Page::FrameProperty()
{
    return impl::call_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>([&](auto&& f) { return f.FrameProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Page::TopAppBarProperty()
{
    return impl::call_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>([&](auto&& f) { return f.TopAppBarProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Page::BottomAppBarProperty()
{
    return impl::call_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>([&](auto&& f) { return f.BottomAppBarProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Panel::BackgroundProperty()
{
    return impl::call_factory<Panel, Windows::UI::Xaml::Controls::IPanelStatics>([&](auto&& f) { return f.BackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Panel::IsItemsHostProperty()
{
    return impl::call_factory<Panel, Windows::UI::Xaml::Controls::IPanelStatics>([&](auto&& f) { return f.IsItemsHostProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ParallaxView::ChildProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.ChildProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::HorizontalSourceEndOffsetProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.HorizontalSourceEndOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::HorizontalSourceOffsetKindProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.HorizontalSourceOffsetKindProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::HorizontalSourceStartOffsetProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.HorizontalSourceStartOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::MaxHorizontalShiftRatioProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.MaxHorizontalShiftRatioProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::HorizontalShiftProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.HorizontalShiftProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::IsHorizontalShiftClampedProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.IsHorizontalShiftClampedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::IsVerticalShiftClampedProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.IsVerticalShiftClampedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::SourceProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.SourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::VerticalSourceEndOffsetProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.VerticalSourceEndOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::VerticalSourceOffsetKindProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.VerticalSourceOffsetKindProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::VerticalSourceStartOffsetProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.VerticalSourceStartOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::MaxVerticalShiftRatioProperty()
{
    return impl::call_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>([&](auto&& f) { return f.MaxVerticalShiftRatioProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty PasswordBox::PasswordProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>([&](auto&& f) { return f.PasswordProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PasswordCharProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>([&](auto&& f) { return f.PasswordCharProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::IsPasswordRevealButtonEnabledProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>([&](auto&& f) { return f.IsPasswordRevealButtonEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::MaxLengthProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>([&](auto&& f) { return f.MaxLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::HeaderProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::HeaderTemplateProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PlaceholderTextProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.PlaceholderTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::SelectionHighlightColorProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>([&](auto&& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PasswordRevealModeProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>([&](auto&& f) { return f.PasswordRevealModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::TextReadingOrderProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>([&](auto&& f) { return f.TextReadingOrderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::InputScopeProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>([&](auto&& f) { return f.InputScopeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::CanPasteClipboardContentProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics5>([&](auto&& f) { return f.CanPasteClipboardContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::SelectionFlyoutProperty()
{
    return impl::call_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics5>([&](auto&& f) { return f.SelectionFlyoutProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty PersonPicture::BadgeNumberProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.BadgeNumberProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::BadgeGlyphProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.BadgeGlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::BadgeImageSourceProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.BadgeImageSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::BadgeTextProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.BadgeTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::IsGroupProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.IsGroupProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::ContactProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.ContactProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::DisplayNameProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.DisplayNameProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::InitialsProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.InitialsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::PreferSmallImageProperty()
{
    return impl::call_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>([&](auto&& f) { return f.PreferSmallImageProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty PickerFlyout::ContentProperty()
{
    return impl::call_factory<PickerFlyout, Windows::UI::Xaml::Controls::IPickerFlyoutStatics>([&](auto&& f) { return f.ContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Pivot::TitleProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.TitleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::TitleTemplateProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.TitleTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::HeaderTemplateProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::SelectedIndexProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.SelectedIndexProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::SelectedItemProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.SelectedItemProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::IsLockedProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.IsLockedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::SlideInAnimationGroupProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>([&](auto&& f) { return f.SlideInAnimationGroupProperty(); });
}

inline Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup 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 void 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 Windows::UI::Xaml::DependencyProperty Pivot::LeftHeaderProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>([&](auto&& f) { return f.LeftHeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::LeftHeaderTemplateProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>([&](auto&& f) { return f.LeftHeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::RightHeaderProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>([&](auto&& f) { return f.RightHeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::RightHeaderTemplateProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>([&](auto&& f) { return f.RightHeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Pivot::HeaderFocusVisualPlacementProperty()
{
    return impl::call_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics3>([&](auto&& f) { return f.HeaderFocusVisualPlacementProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ProgressBar::IsIndeterminateProperty()
{
    return impl::call_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarStatics>([&](auto&& f) { return f.IsIndeterminateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ProgressBar::ShowErrorProperty()
{
    return impl::call_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarStatics>([&](auto&& f) { return f.ShowErrorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RatingControl::CaptionProperty()
{
    return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.CaptionProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::InitialSetValueProperty()
{
    return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.InitialSetValueProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::IsClearEnabledProperty()
{
    return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.IsClearEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::IsReadOnlyProperty()
{
    return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.IsReadOnlyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::MaxRatingProperty()
{
    return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.MaxRatingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::PlaceholderValueProperty()
{
    return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.PlaceholderValueProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::ItemInfoProperty()
{
    return impl::call_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>([&](auto&& f) { return f.ItemInfoProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::DisabledGlyphProperty()
{
    return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.DisabledGlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::GlyphProperty()
{
    return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.GlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::PlaceholderGlyphProperty()
{
    return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.PlaceholderGlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::PointerOverGlyphProperty()
{
    return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.PointerOverGlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::PointerOverPlaceholderGlyphProperty()
{
    return impl::call_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>([&](auto&& f) { return f.PointerOverPlaceholderGlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::DisabledImageProperty()
{
    return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.DisabledImageProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::ImageProperty()
{
    return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.ImageProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::PlaceholderImageProperty()
{
    return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.PlaceholderImageProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::PointerOverImageProperty()
{
    return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.PointerOverImageProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::PointerOverPlaceholderImageProperty()
{
    return impl::call_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>([&](auto&& f) { return f.PointerOverPlaceholderImageProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RefreshContainer::VisualizerProperty()
{
    return impl::call_factory<RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerStatics>([&](auto&& f) { return f.VisualizerProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RefreshVisualizer::InfoProviderProperty()
{
    return impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>([&](auto&& f) { return f.InfoProviderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RefreshVisualizer::OrientationProperty()
{
    return impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RefreshVisualizer::ContentProperty()
{
    return impl::call_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>([&](auto&& f) { return f.ContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RelativePanel::LeftOfProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.LeftOfProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AboveProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AboveProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::RightOfProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.RightOfProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::BelowProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.BelowProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignHorizontalCenterWithProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignHorizontalCenterWithProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignVerticalCenterWithProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignVerticalCenterWithProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignLeftWithProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignLeftWithProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignTopWithProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignTopWithProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignRightWithProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignRightWithProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignBottomWithProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignBottomWithProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignLeftWithPanelProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignLeftWithPanelProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignTopWithPanelProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignTopWithPanelProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignRightWithPanelProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignRightWithPanelProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignBottomWithPanelProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignBottomWithPanelProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignHorizontalCenterWithPanelProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignHorizontalCenterWithPanelProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::AlignVerticalCenterWithPanelProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.AlignVerticalCenterWithPanelProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty RelativePanel::BorderBrushProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.BorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::BorderThicknessProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.BorderThicknessProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::CornerRadiusProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.CornerRadiusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::PaddingProperty()
{
    return impl::call_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RichEditBox::IsReadOnlyProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.IsReadOnlyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::AcceptsReturnProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.AcceptsReturnProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::TextAlignmentProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.TextAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::TextWrappingProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.TextWrappingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsSpellCheckEnabledProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.IsSpellCheckEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsTextPredictionEnabledProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.IsTextPredictionEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::InputScopeProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>([&](auto&& f) { return f.InputScopeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::HeaderProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::HeaderTemplateProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::PlaceholderTextProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.PlaceholderTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::SelectionHighlightColorProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsColorFontEnabledProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>([&](auto&& f) { return f.IsColorFontEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::DesiredCandidateWindowAlignmentProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics3>([&](auto&& f) { return f.DesiredCandidateWindowAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::TextReadingOrderProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics3>([&](auto&& f) { return f.TextReadingOrderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ClipboardCopyFormatProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics4>([&](auto&& f) { return f.ClipboardCopyFormatProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::SelectionHighlightColorWhenNotFocusedProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics5>([&](auto&& f) { return f.SelectionHighlightColorWhenNotFocusedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::MaxLengthProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics5>([&](auto&& f) { return f.MaxLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::HorizontalTextAlignmentProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>([&](auto&& f) { return f.HorizontalTextAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::CharacterCasingProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>([&](auto&& f) { return f.CharacterCasingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::DisabledFormattingAcceleratorsProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>([&](auto&& f) { return f.DisabledFormattingAcceleratorsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ContentLinkForegroundColorProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.ContentLinkForegroundColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ContentLinkBackgroundColorProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.ContentLinkBackgroundColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ContentLinkProvidersProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.ContentLinkProvidersProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::HandwritingViewProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.HandwritingViewProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsHandwritingViewEnabledProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>([&](auto&& f) { return f.IsHandwritingViewEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::SelectionFlyoutProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics8>([&](auto&& f) { return f.SelectionFlyoutProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ProofingMenuFlyoutProperty()
{
    return impl::call_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics8>([&](auto&& f) { return f.ProofingMenuFlyoutProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RichTextBlock::FontSizeProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontFamilyProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontWeightProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontStyleProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontStretchProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.FontStretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::ForegroundProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.ForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextWrappingProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.TextWrappingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextTrimmingProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.TextTrimmingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextAlignmentProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.TextAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::PaddingProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::LineHeightProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.LineHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::LineStackingStrategyProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.LineStackingStrategyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::CharacterSpacingProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.CharacterSpacingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::OverflowContentTargetProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.OverflowContentTargetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::IsTextSelectionEnabledProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.IsTextSelectionEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::HasOverflowContentProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.HasOverflowContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::SelectedTextProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.SelectedTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextIndentProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>([&](auto&& f) { return f.TextIndentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::MaxLinesProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.MaxLinesProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextLineBoundsProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.TextLineBoundsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::SelectionHighlightColorProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::OpticalMarginAlignmentProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.OpticalMarginAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::IsColorFontEnabledProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.IsColorFontEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextReadingOrderProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>([&](auto&& f) { return f.TextReadingOrderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::IsTextScaleFactorEnabledProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics3>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextDecorationsProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics4>([&](auto&& f) { return f.TextDecorationsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::IsTextTrimmedProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics5>([&](auto&& f) { return f.IsTextTrimmedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::HorizontalTextAlignmentProperty()
{
    return impl::call_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics5>([&](auto&& f) { return f.HorizontalTextAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::OverflowContentTargetProperty()
{
    return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>([&](auto&& f) { return f.OverflowContentTargetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::PaddingProperty()
{
    return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::HasOverflowContentProperty()
{
    return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>([&](auto&& f) { return f.HasOverflowContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::MaxLinesProperty()
{
    return impl::call_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>([&](auto&& f) { return f.MaxLinesProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty RowDefinition::HeightProperty()
{
    return impl::call_factory<RowDefinition, Windows::UI::Xaml::Controls::IRowDefinitionStatics>([&](auto&& f) { return f.HeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty RowDefinition::MaxHeightProperty()
{
    return impl::call_factory<RowDefinition, Windows::UI::Xaml::Controls::IRowDefinitionStatics>([&](auto&& f) { return f.MaxHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ScrollContentPresenter::CanContentRenderOutsideBoundsProperty()
{
    return impl::call_factory<ScrollContentPresenter, Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>([&](auto&& f) { return f.CanContentRenderOutsideBoundsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalSnapPointsAlignmentProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalSnapPointsAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalSnapPointsAlignmentProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalSnapPointsAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalSnapPointsTypeProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalSnapPointsTypeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalSnapPointsTypeProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalSnapPointsTypeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ZoomSnapPointsTypeProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ZoomSnapPointsTypeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalOffsetProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ViewportWidthProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ViewportWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ScrollableWidthProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ScrollableWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ComputedHorizontalScrollBarVisibilityProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ComputedHorizontalScrollBarVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ExtentWidthProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ExtentWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalOffsetProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ViewportHeightProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ViewportHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ScrollableHeightProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ScrollableHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ComputedVerticalScrollBarVisibilityProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ComputedVerticalScrollBarVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ExtentHeightProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ExtentHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::MinZoomFactorProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.MinZoomFactorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::MaxZoomFactorProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.MaxZoomFactorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ZoomFactorProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ZoomFactorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ZoomSnapPointsProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ZoomSnapPointsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalScrollBarVisibilityProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalScrollBarVisibilityProperty(); });
}

inline Windows::UI::Xaml::Controls::ScrollBarVisibility 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalScrollBarVisibilityProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalScrollBarVisibilityProperty(); });
}

inline Windows::UI::Xaml::Controls::ScrollBarVisibility 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::IsHorizontalRailEnabledProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsHorizontalRailEnabledProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::IsVerticalRailEnabledProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsVerticalRailEnabledProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::IsHorizontalScrollChainingEnabledProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsHorizontalScrollChainingEnabledProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::IsVerticalScrollChainingEnabledProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsVerticalScrollChainingEnabledProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::IsZoomChainingEnabledProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsZoomChainingEnabledProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::IsScrollInertiaEnabledProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsScrollInertiaEnabledProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::IsZoomInertiaEnabledProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsZoomInertiaEnabledProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalScrollModeProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.HorizontalScrollModeProperty(); });
}

inline Windows::UI::Xaml::Controls::ScrollMode 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalScrollModeProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.VerticalScrollModeProperty(); });
}

inline Windows::UI::Xaml::Controls::ScrollMode 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::ZoomModeProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.ZoomModeProperty(); });
}

inline Windows::UI::Xaml::Controls::ZoomMode 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::IsDeferredScrollingEnabledProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.IsDeferredScrollingEnabledProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::BringIntoViewOnFocusChangeProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>([&](auto&& f) { return f.BringIntoViewOnFocusChangeProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty ScrollViewer::TopLeftHeaderProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>([&](auto&& f) { return f.TopLeftHeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::LeftHeaderProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>([&](auto&& f) { return f.LeftHeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::TopHeaderProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>([&](auto&& f) { return f.TopHeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ReduceViewportForCoreInputViewOcclusionsProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.ReduceViewportForCoreInputViewOcclusionsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalAnchorRatioProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.HorizontalAnchorRatioProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalAnchorRatioProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.VerticalAnchorRatioProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::CanContentRenderOutsideBoundsProperty()
{
    return impl::call_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics4>([&](auto&& f) { return f.CanContentRenderOutsideBoundsProperty(); });
}

inline bool 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 void 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 Windows::UI::Xaml::DependencyProperty SearchBox::SearchHistoryEnabledProperty()
{
    return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.SearchHistoryEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::SearchHistoryContextProperty()
{
    return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.SearchHistoryContextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::PlaceholderTextProperty()
{
    return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.PlaceholderTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::QueryTextProperty()
{
    return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.QueryTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::FocusOnKeyboardInputProperty()
{
    return impl::call_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>([&](auto&& f) { return f.FocusOnKeyboardInputProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty SemanticZoom::ZoomedInViewProperty()
{
    return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.ZoomedInViewProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SemanticZoom::ZoomedOutViewProperty()
{
    return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.ZoomedOutViewProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SemanticZoom::IsZoomedInViewActiveProperty()
{
    return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.IsZoomedInViewActiveProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SemanticZoom::CanChangeViewsProperty()
{
    return impl::call_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>([&](auto&& f) { return f.CanChangeViewsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty SettingsFlyout::TitleProperty()
{
    return impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>([&](auto&& f) { return f.TitleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SettingsFlyout::HeaderBackgroundProperty()
{
    return impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>([&](auto&& f) { return f.HeaderBackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SettingsFlyout::HeaderForegroundProperty()
{
    return impl::call_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>([&](auto&& f) { return f.HeaderForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty Slider::IntermediateValueProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.IntermediateValueProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::StepFrequencyProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.StepFrequencyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::SnapsToProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.SnapsToProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::TickFrequencyProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.TickFrequencyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::TickPlacementProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.TickPlacementProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::OrientationProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::IsDirectionReversedProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.IsDirectionReversedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::IsThumbToolTipEnabledProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.IsThumbToolTipEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::ThumbToolTipValueConverterProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>([&](auto&& f) { return f.ThumbToolTipValueConverterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty Slider::HeaderProperty()
{
    return impl::call_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics2>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty SplitButton::FlyoutProperty()
{
    return impl::call_factory<SplitButton, Windows::UI::Xaml::Controls::ISplitButtonStatics>([&](auto&& f) { return f.FlyoutProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitButton::CommandProperty()
{
    return impl::call_factory<SplitButton, Windows::UI::Xaml::Controls::ISplitButtonStatics>([&](auto&& f) { return f.CommandProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty SplitView::ContentProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.ContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitView::PaneProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.PaneProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitView::IsPaneOpenProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.IsPaneOpenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitView::OpenPaneLengthProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.OpenPaneLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitView::CompactPaneLengthProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.CompactPaneLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitView::PanePlacementProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.PanePlacementProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitView::DisplayModeProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.DisplayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitView::TemplateSettingsProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.TemplateSettingsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SplitView::PaneBackgroundProperty()
{
    return impl::call_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>([&](auto&& f) { return f.PaneBackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty StackPanel::AreScrollSnapPointsRegularProperty()
{
    return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics>([&](auto&& f) { return f.AreScrollSnapPointsRegularProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::OrientationProperty()
{
    return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::BorderBrushProperty()
{
    return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>([&](auto&& f) { return f.BorderBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::BorderThicknessProperty()
{
    return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>([&](auto&& f) { return f.BorderThicknessProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::CornerRadiusProperty()
{
    return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>([&](auto&& f) { return f.CornerRadiusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::PaddingProperty()
{
    return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::SpacingProperty()
{
    return impl::call_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics4>([&](auto&& f) { return f.SpacingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty SwapChainPanel::CompositionScaleXProperty()
{
    return impl::call_factory<SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelStatics>([&](auto&& f) { return f.CompositionScaleXProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty SwipeControl::LeftItemsProperty()
{
    return impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>([&](auto&& f) { return f.LeftItemsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SwipeControl::RightItemsProperty()
{
    return impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>([&](auto&& f) { return f.RightItemsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SwipeControl::TopItemsProperty()
{
    return impl::call_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>([&](auto&& f) { return f.TopItemsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty SwipeItem::IconSourceProperty()
{
    return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.IconSourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::TextProperty()
{
    return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.TextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::BackgroundProperty()
{
    return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.BackgroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::ForegroundProperty()
{
    return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.ForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::CommandProperty()
{
    return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.CommandProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::CommandParameterProperty()
{
    return impl::call_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>([&](auto&& f) { return f.CommandParameterProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty TextBlock::FontSizeProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontFamilyProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontFamilyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontWeightProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontWeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontStyleProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontStretchProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.FontStretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::CharacterSpacingProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.CharacterSpacingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::ForegroundProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.ForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextWrappingProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.TextWrappingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextTrimmingProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.TextTrimmingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextAlignmentProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.TextAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.TextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::PaddingProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.PaddingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::LineHeightProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.LineHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::LineStackingStrategyProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.LineStackingStrategyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::IsTextSelectionEnabledProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.IsTextSelectionEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::SelectedTextProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>([&](auto&& f) { return f.SelectedTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::SelectionHighlightColorProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::MaxLinesProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.MaxLinesProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextLineBoundsProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.TextLineBoundsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::OpticalMarginAlignmentProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.OpticalMarginAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::IsColorFontEnabledProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.IsColorFontEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextReadingOrderProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>([&](auto&& f) { return f.TextReadingOrderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::IsTextScaleFactorEnabledProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics3>([&](auto&& f) { return f.IsTextScaleFactorEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextDecorationsProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics5>([&](auto&& f) { return f.TextDecorationsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::IsTextTrimmedProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics6>([&](auto&& f) { return f.IsTextTrimmedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::HorizontalTextAlignmentProperty()
{
    return impl::call_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics6>([&](auto&& f) { return f.HorizontalTextAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty TextBox::TextProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.TextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::MaxLengthProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.MaxLengthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsReadOnlyProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.IsReadOnlyProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::AcceptsReturnProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.AcceptsReturnProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::TextAlignmentProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.TextAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::TextWrappingProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.TextWrappingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsSpellCheckEnabledProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.IsSpellCheckEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsTextPredictionEnabledProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.IsTextPredictionEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::InputScopeProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>([&](auto&& f) { return f.InputScopeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::HeaderProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::HeaderTemplateProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::PlaceholderTextProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.PlaceholderTextProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::SelectionHighlightColorProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.SelectionHighlightColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsColorFontEnabledProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>([&](auto&& f) { return f.IsColorFontEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::DesiredCandidateWindowAlignmentProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics3>([&](auto&& f) { return f.DesiredCandidateWindowAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::TextReadingOrderProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics3>([&](auto&& f) { return f.TextReadingOrderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::SelectionHighlightColorWhenNotFocusedProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics5>([&](auto&& f) { return f.SelectionHighlightColorWhenNotFocusedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::HorizontalTextAlignmentProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>([&](auto&& f) { return f.HorizontalTextAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::CharacterCasingProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>([&](auto&& f) { return f.CharacterCasingProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::PlaceholderForegroundProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>([&](auto&& f) { return f.PlaceholderForegroundProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::HandwritingViewProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics7>([&](auto&& f) { return f.HandwritingViewProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsHandwritingViewEnabledProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics7>([&](auto&& f) { return f.IsHandwritingViewEnabledProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::CanPasteClipboardContentProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.CanPasteClipboardContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::CanUndoProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.CanUndoProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::CanRedoProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.CanRedoProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::SelectionFlyoutProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.SelectionFlyoutProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TextBox::ProofingMenuFlyoutProperty()
{
    return impl::call_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics8>([&](auto&& f) { return f.ProofingMenuFlyoutProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty TimePicker::HeaderProperty()
{
    return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::HeaderTemplateProperty()
{
    return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::ClockIdentifierProperty()
{
    return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.ClockIdentifierProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::MinuteIncrementProperty()
{
    return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.MinuteIncrementProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::TimeProperty()
{
    return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>([&](auto&& f) { return f.TimeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::LightDismissOverlayModeProperty()
{
    return impl::call_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics2>([&](auto&& f) { return f.LightDismissOverlayModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty TimePickerFlyout::ClockIdentifierProperty()
{
    return impl::call_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>([&](auto&& f) { return f.ClockIdentifierProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TimePickerFlyout::TimeProperty()
{
    return impl::call_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>([&](auto&& f) { return f.TimeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TimePickerFlyout::MinuteIncrementProperty()
{
    return impl::call_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>([&](auto&& f) { return f.MinuteIncrementProperty(); });
}

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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ToggleSwitch::IsOnProperty()
{
    return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.IsOnProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::HeaderProperty()
{
    return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.HeaderProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::HeaderTemplateProperty()
{
    return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.HeaderTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::OnContentProperty()
{
    return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.OnContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::OnContentTemplateProperty()
{
    return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.OnContentTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::OffContentProperty()
{
    return impl::call_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>([&](auto&& f) { return f.OffContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty ToolTip::HorizontalOffsetProperty()
{
    return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.HorizontalOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::IsOpenProperty()
{
    return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.IsOpenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::PlacementProperty()
{
    return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.PlacementProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::PlacementTargetProperty()
{
    return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.PlacementTargetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::VerticalOffsetProperty()
{
    return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>([&](auto&& f) { return f.VerticalOffsetProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::PlacementRectProperty()
{
    return impl::call_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics2>([&](auto&& f) { return f.PlacementRectProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty ToolTipService::PlacementProperty()
{
    return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.PlacementProperty(); });
}

inline Windows::UI::Xaml::Controls::Primitives::PlacementMode 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 void 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 Windows::UI::Xaml::DependencyProperty ToolTipService::PlacementTargetProperty()
{
    return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.PlacementTargetProperty(); });
}

inline Windows::UI::Xaml::UIElement 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 void 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 Windows::UI::Xaml::DependencyProperty ToolTipService::ToolTipProperty()
{
    return impl::call_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>([&](auto&& f) { return f.ToolTipProperty(); });
}

inline Windows::Foundation::IInspectable 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 void 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 Windows::UI::Xaml::DependencyProperty TreeView::SelectionModeProperty()
{
    return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics>([&](auto&& f) { return f.SelectionModeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeView::CanDragItemsProperty()
{
    return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.CanDragItemsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeView::CanReorderItemsProperty()
{
    return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.CanReorderItemsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeView::ItemTemplateProperty()
{
    return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemTemplateProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeView::ItemTemplateSelectorProperty()
{
    return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemTemplateSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeView::ItemContainerStyleProperty()
{
    return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemContainerStyleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeView::ItemContainerStyleSelectorProperty()
{
    return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemContainerStyleSelectorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeView::ItemContainerTransitionsProperty()
{
    return impl::call_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics2>([&](auto&& f) { return f.ItemContainerTransitionsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty TreeViewItem::GlyphOpacityProperty()
{
    return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.GlyphOpacityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::GlyphBrushProperty()
{
    return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.GlyphBrushProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::ExpandedGlyphProperty()
{
    return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.ExpandedGlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::CollapsedGlyphProperty()
{
    return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.CollapsedGlyphProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::GlyphSizeProperty()
{
    return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.GlyphSizeProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::IsExpandedProperty()
{
    return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.IsExpandedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::TreeViewItemTemplateSettingsProperty()
{
    return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>([&](auto&& f) { return f.TreeViewItemTemplateSettingsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::HasUnrealizedChildrenProperty()
{
    return impl::call_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics2>([&](auto&& f) { return f.HasUnrealizedChildrenProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty TreeViewItemTemplateSettings::ExpandedGlyphVisibilityProperty()
{
    return impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>([&](auto&& f) { return f.ExpandedGlyphVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItemTemplateSettings::CollapsedGlyphVisibilityProperty()
{
    return impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>([&](auto&& f) { return f.CollapsedGlyphVisibilityProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItemTemplateSettings::IndentationProperty()
{
    return impl::call_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>([&](auto&& f) { return f.IndentationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty TreeViewNode::ContentProperty()
{
    return impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>([&](auto&& f) { return f.ContentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewNode::DepthProperty()
{
    return impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>([&](auto&& f) { return f.DepthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewNode::IsExpandedProperty()
{
    return impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>([&](auto&& f) { return f.IsExpandedProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty TreeViewNode::HasChildrenProperty()
{
    return impl::call_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>([&](auto&& f) { return f.HasChildrenProperty(); });
}

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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::ItemHeightProperty()
{
    return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.ItemHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::ItemWidthProperty()
{
    return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.ItemWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::OrientationProperty()
{
    return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::HorizontalChildrenAlignmentProperty()
{
    return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.HorizontalChildrenAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::VerticalChildrenAlignmentProperty()
{
    return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.VerticalChildrenAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::MaximumRowsOrColumnsProperty()
{
    return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.MaximumRowsOrColumnsProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::RowSpanProperty()
{
    return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.RowSpanProperty(); });
}

inline int32_t 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 void 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 Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::ColumnSpanProperty()
{
    return impl::call_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>([&](auto&& f) { return f.ColumnSpanProperty(); });
}

inline int32_t 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 void 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 Windows::UI::Xaml::DependencyProperty Viewbox::StretchProperty()
{
    return impl::call_factory<Viewbox, Windows::UI::Xaml::Controls::IViewboxStatics>([&](auto&& f) { return f.StretchProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty VirtualizingStackPanel::AreScrollSnapPointsRegularProperty()
{
    return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.AreScrollSnapPointsRegularProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty VirtualizingStackPanel::OrientationProperty()
{
    return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty VirtualizingStackPanel::VirtualizationModeProperty()
{
    return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.VirtualizationModeProperty(); });
}

inline Windows::UI::Xaml::Controls::VirtualizationMode 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 void 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 Windows::UI::Xaml::DependencyProperty VirtualizingStackPanel::IsVirtualizingProperty()
{
    return impl::call_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>([&](auto&& f) { return f.IsVirtualizingProperty(); });
}

inline bool 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 Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> WebView::AnyScriptNotifyUri()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>([&](auto&& f) { return f.AnyScriptNotifyUri(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::SourceProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>([&](auto&& f) { return f.SourceProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::AllowedScriptNotifyUrisProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>([&](auto&& f) { return f.AllowedScriptNotifyUrisProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::DataTransferPackageProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>([&](auto&& f) { return f.DataTransferPackageProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::CanGoBackProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>([&](auto&& f) { return f.CanGoBackProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::CanGoForwardProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>([&](auto&& f) { return f.CanGoForwardProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::DocumentTitleProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>([&](auto&& f) { return f.DocumentTitleProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::DefaultBackgroundColorProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>([&](auto&& f) { return f.DefaultBackgroundColorProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::ContainsFullScreenElementProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics3>([&](auto&& f) { return f.ContainsFullScreenElementProperty(); });
}

inline Windows::UI::Xaml::Controls::WebViewExecutionMode WebView::DefaultExecutionMode()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics4>([&](auto&& f) { return f.DefaultExecutionMode(); });
}

inline Windows::Foundation::IAsyncAction WebView::ClearTemporaryWebDataAsync()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics4>([&](auto&& f) { return f.ClearTemporaryWebDataAsync(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::XYFocusLeftProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>([&](auto&& f) { return f.XYFocusLeftProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::XYFocusRightProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>([&](auto&& f) { return f.XYFocusRightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WebView::XYFocusUpProperty()
{
    return impl::call_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>([&](auto&& f) { return f.XYFocusUpProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty 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 Windows::UI::Xaml::DependencyProperty WrapGrid::ItemWidthProperty()
{
    return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.ItemWidthProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::ItemHeightProperty()
{
    return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.ItemHeightProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::OrientationProperty()
{
    return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.OrientationProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::HorizontalChildrenAlignmentProperty()
{
    return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.HorizontalChildrenAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::VerticalChildrenAlignmentProperty()
{
    return impl::call_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>([&](auto&& f) { return f.VerticalChildrenAlignmentProperty(); });
}

inline Windows::UI::Xaml::DependencyProperty 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 void BackClickEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::BackClickEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<BackClickEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void 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(get_abi(sender), get_abi(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 void CleanUpVirtualizedItemEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<CleanUpVirtualizedItemEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void ContextMenuOpeningEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::ContextMenuEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<ContextMenuOpeningEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void DragItemsStartingEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::DragItemsStartingEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<DragItemsStartingEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void HubSectionHeaderClickEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::HubSectionHeaderClickEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<HubSectionHeaderClickEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void ItemClickEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::ItemClickEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<ItemClickEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 hstring ListViewItemToKeyHandler::operator()(Windows::Foundation::IInspectable const& item) const
{
    hstring result{};
    check_hresult((*(impl::abi_t<ListViewItemToKeyHandler>**)this)->Invoke(get_abi(item), put_abi(result)));
    return result;
}

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 Windows::Foundation::IAsyncOperation<Windows::Foundation::IInspectable> ListViewKeyToItemHandler::operator()(param::hstring const& key) const
{
    Windows::Foundation::IAsyncOperation<Windows::Foundation::IInspectable> operation{ nullptr };
    check_hresult((*(impl::abi_t<ListViewKeyToItemHandler>**)this)->Invoke(get_abi(key), put_abi(operation)));
    return operation;
}

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 void NotifyEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::NotifyEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<NotifyEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void SectionsInViewChangedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::SectionsInViewChangedEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<SectionsInViewChangedEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void SelectionChangedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::SelectionChangedEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<SelectionChangedEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void SemanticZoomViewChangedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<SemanticZoomViewChangedEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void TextChangedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::TextChangedEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<TextChangedEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void TextControlPasteEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::TextControlPasteEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<TextControlPasteEventHandler>**)this)->Invoke(get_abi(sender), get_abi(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 void WebViewNavigationFailedEventHandler::operator()(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs const& e) const
{
    check_hresult((*(impl::abi_t<WebViewNavigationFailedEventHandler>**)this)->Invoke(get_abi(sender), get_abi(e)));
}

template <typename D> void IAppBarOverridesT<D>::OnClosed(Windows::Foundation::IInspectable const& e) const
{
    return shim().template try_as<IAppBarOverrides>().OnClosed(e);
}

template <typename D> void IAppBarOverridesT<D>::OnOpened(Windows::Foundation::IInspectable const& e) const
{
    return shim().template try_as<IAppBarOverrides>().OnOpened(e);
}

template <typename D> void IAppBarOverrides3T<D>::OnClosing(Windows::Foundation::IInspectable const& e) const
{
    return shim().template try_as<IAppBarOverrides3>().OnClosing(e);
}

template <typename D> void IAppBarOverrides3T<D>::OnOpening(Windows::Foundation::IInspectable const& e) const
{
    return shim().template try_as<IAppBarOverrides3>().OnOpening(e);
}

template <typename D> void IComboBoxOverridesT<D>::OnDropDownClosed(Windows::Foundation::IInspectable const& e) const
{
    return shim().template try_as<IComboBoxOverrides>().OnDropDownClosed(e);
}

template <typename D> void IComboBoxOverridesT<D>::OnDropDownOpened(Windows::Foundation::IInspectable const& e) const
{
    return shim().template try_as<IComboBoxOverrides>().OnDropDownOpened(e);
}

template <typename D> void 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> void 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> void 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> void 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> void 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> void IControlOverridesT<D>::OnPointerEntered(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnPointerEntered(e);
}

template <typename D> void IControlOverridesT<D>::OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnPointerPressed(e);
}

template <typename D> void IControlOverridesT<D>::OnPointerMoved(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnPointerMoved(e);
}

template <typename D> void IControlOverridesT<D>::OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnPointerReleased(e);
}

template <typename D> void IControlOverridesT<D>::OnPointerExited(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnPointerExited(e);
}

template <typename D> void IControlOverridesT<D>::OnPointerCaptureLost(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnPointerCaptureLost(e);
}

template <typename D> void IControlOverridesT<D>::OnPointerCanceled(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnPointerCanceled(e);
}

template <typename D> void IControlOverridesT<D>::OnPointerWheelChanged(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnPointerWheelChanged(e);
}

template <typename D> void IControlOverridesT<D>::OnTapped(Windows::UI::Xaml::Input::TappedRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnTapped(e);
}

template <typename D> void IControlOverridesT<D>::OnDoubleTapped(Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnDoubleTapped(e);
}

template <typename D> void IControlOverridesT<D>::OnHolding(Windows::UI::Xaml::Input::HoldingRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnHolding(e);
}

template <typename D> void IControlOverridesT<D>::OnRightTapped(Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnRightTapped(e);
}

template <typename D> void IControlOverridesT<D>::OnManipulationStarting(Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnManipulationStarting(e);
}

template <typename D> void IControlOverridesT<D>::OnManipulationInertiaStarting(Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnManipulationInertiaStarting(e);
}

template <typename D> void IControlOverridesT<D>::OnManipulationStarted(Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnManipulationStarted(e);
}

template <typename D> void IControlOverridesT<D>::OnManipulationDelta(Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnManipulationDelta(e);
}

template <typename D> void IControlOverridesT<D>::OnManipulationCompleted(Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnManipulationCompleted(e);
}

template <typename D> void IControlOverridesT<D>::OnKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnKeyUp(e);
}

template <typename D> void IControlOverridesT<D>::OnKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnKeyDown(e);
}

template <typename D> void IControlOverridesT<D>::OnGotFocus(Windows::UI::Xaml::RoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnGotFocus(e);
}

template <typename D> void IControlOverridesT<D>::OnLostFocus(Windows::UI::Xaml::RoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnLostFocus(e);
}

template <typename D> void IControlOverridesT<D>::OnDragEnter(Windows::UI::Xaml::DragEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnDragEnter(e);
}

template <typename D> void IControlOverridesT<D>::OnDragLeave(Windows::UI::Xaml::DragEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnDragLeave(e);
}

template <typename D> void IControlOverridesT<D>::OnDragOver(Windows::UI::Xaml::DragEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnDragOver(e);
}

template <typename D> void IControlOverridesT<D>::OnDrop(Windows::UI::Xaml::DragEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides>().OnDrop(e);
}

template <typename D> void IControlOverrides6T<D>::OnPreviewKeyDown(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides6>().OnPreviewKeyDown(e);
}

template <typename D> void IControlOverrides6T<D>::OnPreviewKeyUp(Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides6>().OnPreviewKeyUp(e);
}

template <typename D> void IControlOverrides6T<D>::OnCharacterReceived(Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const& e) const
{
    return shim().template try_as<IControlOverrides6>().OnCharacterReceived(e);
}

template <typename D> Windows::UI::Xaml::DataTemplate 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> Windows::UI::Xaml::DataTemplate IDataTemplateSelectorOverrides2T<D>::SelectTemplateCore(Windows::Foundation::IInspectable const& item) const
{
    return shim().template try_as<IDataTemplateSelectorOverrides2>().SelectTemplateCore(item);
}

template <typename D> Windows::UI::Xaml::Controls::GroupStyle IGroupStyleSelectorOverridesT<D>::SelectGroupStyleCore(Windows::Foundation::IInspectable const& group, uint32_t level) const
{
    return shim().template try_as<IGroupStyleSelectorOverrides>().SelectGroupStyleCore(group, level);
}

template <typename D> Windows::UI::Input::Inking::InkDrawingAttributes 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> bool IItemsControlOverridesT<D>::IsItemItsOwnContainerOverride(Windows::Foundation::IInspectable const& item) const
{
    return shim().template try_as<IItemsControlOverrides>().IsItemItsOwnContainerOverride(item);
}

template <typename D> Windows::UI::Xaml::DependencyObject IItemsControlOverridesT<D>::GetContainerForItemOverride() const
{
    return shim().template try_as<IItemsControlOverrides>().GetContainerForItemOverride();
}

template <typename D> void 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> void 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> void IItemsControlOverridesT<D>::OnItemsChanged(Windows::Foundation::IInspectable const& e) const
{
    return shim().template try_as<IItemsControlOverrides>().OnItemsChanged(e);
}

template <typename D> void 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> void 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> void 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> void 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> void 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> void IPageOverridesT<D>::OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
{
    return shim().template try_as<IPageOverrides>().OnNavigatedFrom(e);
}

template <typename D> void IPageOverridesT<D>::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
{
    return shim().template try_as<IPageOverrides>().OnNavigatedTo(e);
}

template <typename D> void IPageOverridesT<D>::OnNavigatingFrom(Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e) const
{
    return shim().template try_as<IPageOverrides>().OnNavigatingFrom(e);
}

template <typename D> Windows::UI::Xaml::Style 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> void IToggleSwitchOverridesT<D>::OnToggled() const
{
    return shim().template try_as<IToggleSwitchOverrides>().OnToggled();
}

template <typename D> void 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> void 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> void 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> void 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> void IVirtualizingPanelOverridesT<D>::OnClearChildren() const
{
    return shim().template try_as<IVirtualizingPanelOverrides>().OnClearChildren();
}

template <typename D> void IVirtualizingPanelOverridesT<D>::BringIndexIntoView(int32_t index) const
{
    return shim().template try_as<IVirtualizingPanelOverrides>().BringIndexIntoView(index);
}

template <typename D> void 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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = AppBar;

protected:
    AppBarT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IAppBarButton3, Windows::UI::Xaml::Controls::IAppBarButton4, Windows::UI::Xaml::Controls::IAppBarButton5, Windows::UI::Xaml::Controls::IButton, Windows::UI::Xaml::Controls::IButtonWithFlyout, 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::Controls::Primitives::IButtonBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::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::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IBitmapIcon2, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::BitmapIconSource, Windows::UI::Xaml::Controls::IconSource, Windows::UI::Xaml::DependencyObject>
{
    using composable = BitmapIconSource;

protected:
    BitmapIconSourceT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IButtonWithFlyout, 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::Controls::Primitives::IButtonBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = Button;

protected:
    ButtonT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::ComboBox, Windows::UI::Xaml::Controls::IComboBoxFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

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::Composition::IAnimationObject, 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::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IAppBar, Windows::UI::Xaml::Controls::IAppBar2, Windows::UI::Xaml::Controls::IAppBar3, Windows::UI::Xaml::Controls::IAppBar4, Windows::UI::Xaml::Controls::ICommandBar2, Windows::UI::Xaml::Controls::ICommandBar3, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    impl::base<D, 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 = CommandBarFlyout;

protected:
    CommandBarFlyoutT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::CommandBarFlyout, Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

template <typename D, typename... Interfaces>
struct CommandBarOverflowPresenterT :
    implements<D, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = ContentControl;

protected:
    ContentControlT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IContentDialog2, Windows::UI::Xaml::Controls::IContentDialog3, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::IContentDialogFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IContentPresenter2, Windows::UI::Xaml::Controls::IContentPresenter3, Windows::UI::Xaml::Controls::IContentPresenter4, Windows::UI::Xaml::Controls::IContentPresenter5, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = Control;

protected:
    ControlT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::DataTemplateSelector>,
    Windows::UI::Xaml::Controls::IDataTemplateSelectorOverridesT<D>, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2T<D>
{
    using composable = DataTemplateSelector;

protected:
    DataTemplateSelectorT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::DataTemplateSelector, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

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::Composition::IAnimationObject, 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::Controls::IDatePicker2, Windows::UI::Xaml::Controls::IDatePicker3, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IButton, Windows::UI::Xaml::Controls::IButtonWithFlyout, 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::Controls::Primitives::IButtonBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::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::Automation::Peers::IButtonAutomationPeer, Windows::UI::Xaml::Automation::Peers::IButtonBaseAutomationPeer, Windows::UI::Xaml::Automation::Peers::IFrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, Windows::UI::Xaml::Automation::Provider::IInvokeProvider, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IFlipView2, Windows::UI::Xaml::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::Flyout, Windows::UI::Xaml::Controls::IFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IFontIcon2, Windows::UI::Xaml::Controls::IFontIcon3, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::FontIconSource, Windows::UI::Xaml::Controls::IconSource, Windows::UI::Xaml::DependencyObject>
{
    using composable = FontIconSource;

protected:
    FontIconSourceT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::Frame, Windows::UI::Xaml::Controls::IFrameFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = Grid;

protected:
    GridT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IListViewBaseHeaderItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::GroupStyle>
{
    using composable = GroupStyle;

protected:
    GroupStyleT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::GroupStyleSelector>,
    Windows::UI::Xaml::Controls::IGroupStyleSelectorOverridesT<D>
{
    using composable = GroupStyleSelector;

protected:
    GroupStyleSelectorT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::ISemanticZoomInformation, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::Primitives::IButtonBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IInkToolbar2, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::IInkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::InkToolbarCustomPen, Windows::UI::Xaml::DependencyObject>,
    Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverridesT<D>
{
    using composable = InkToolbarCustomPen;

protected:
    InkToolbarCustomPenT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::IInkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::ICheckBox, 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::Controls::IInkToolbarToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::IInkToolbarEraserButton2, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::Primitives::IButtonBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::IInkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::IInkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarToolButton, Windows::UI::Xaml::Controls::IRadioButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::ICheckBox, 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::Controls::IInkToolbarToggleButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::IInkToolbarMenuButton, Windows::UI::Xaml::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IListBox2, Windows::UI::Xaml::Controls::Primitives::ISelector, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IListViewBaseHeaderItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = ListViewItem;

protected:
    ListViewItemT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IMediaTransportControls2, Windows::UI::Xaml::Controls::IMediaTransportControls3, Windows::UI::Xaml::Controls::IMediaTransportControls4, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::MenuBarItemFlyout, Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    impl::base<D, 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 = MenuFlyout;

protected:
    MenuFlyoutT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::MenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

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::Composition::IAnimationObject, 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::Controls::IMenuFlyoutItem2, Windows::UI::Xaml::Controls::IMenuFlyoutItem3, Windows::UI::Xaml::Controls::IMenuFlyoutItemBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = MenuFlyoutItem;

protected:
    MenuFlyoutItemT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IMenuFlyoutItemBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::INavigationView2, Windows::UI::Xaml::Controls::INavigationView3, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IListViewItem, Windows::UI::Xaml::Controls::INavigationViewItem2, Windows::UI::Xaml::Controls::INavigationViewItemBase, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IListViewItem, Windows::UI::Xaml::Controls::INavigationViewItemBase, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IListViewItem, Windows::UI::Xaml::Controls::INavigationViewItemBase, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::NavigationViewTemplateSettings, Windows::UI::Xaml::DependencyObject>
{
    using composable = NavigationViewTemplateSettings;

protected:
    NavigationViewTemplateSettingsT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IPageOverrides, 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::Composition::IAnimationObject, 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::Controls::IUserControl, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IPageOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = Panel;

protected:
    PanelT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::PathIconSource, Windows::UI::Xaml::Controls::IconSource, Windows::UI::Xaml::DependencyObject>
{
    using composable = PathIconSource;

protected:
    PathIconSourceT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, Windows::UI::Xaml::Controls::IPivot2, Windows::UI::Xaml::Controls::IPivot3, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverrides, 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::Composition::IAnimationObject, 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::Controls::Primitives::IRangeBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverridesT<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<Windows::UI::Xaml::Controls::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::IContentControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, 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::Composition::IAnimationObject, 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::Controls::Primitives::IButtonBase, Windows::UI::Xaml::Controls::Primitives::IToggleButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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::IContentControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::RatingItemFontInfo, Windows::UI::Xaml::Controls::RatingItemInfo, Windows::UI::Xaml::DependencyObject>
{
    using composable = RatingItemFontInfo;

protected:
    RatingItemFontInfoT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::RatingItemImageInfo, Windows::UI::Xaml::Controls::RatingItemInfo, Windows::UI::Xaml::DependencyObject>
{
    using composable = RatingItemImageInfo;

protected:
    RatingItemImageInfoT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::RatingItemInfo, Windows::UI::Xaml::DependencyObject>
{
    using composable = RatingItemInfo;

protected:
    RatingItemInfoT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::Controls::IRelativePanel2, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverrides, 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::Composition::IAnimationObject, 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::Controls::ISlider2, Windows::UI::Xaml::Controls::Primitives::IRangeBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverridesT<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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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 = SplitButton;

protected:
    SplitButtonT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::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::Automation::Peers::IFrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, Windows::UI::Xaml::Automation::Provider::IInvokeProvider, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::ISplitView2, Windows::UI::Xaml::Controls::ISplitView3, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, Windows::UI::Xaml::Controls::IInsertionPanel, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IPanel2, Windows::UI::Xaml::Controls::IStackPanel2, Windows::UI::Xaml::Controls::IStackPanel4, Windows::UI::Xaml::Controls::IStackPanel5, Windows::UI::Xaml::Controls::Primitives::IScrollSnapPointsInfo, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::StyleSelector>,
    Windows::UI::Xaml::Controls::IStyleSelectorOverridesT<D>
{
    using composable = StyleSelector;

protected:
    StyleSelectorT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::ISwapChainBackgroundPanel2, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::SwipeItem, Windows::UI::Xaml::DependencyObject>
{
    using composable = SwipeItem;

protected:
    SwipeItemT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::SwipeItems, Windows::UI::Xaml::DependencyObject>
{
    using composable = SwipeItems;

protected:
    SwipeItemsT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::SymbolIconSource, Windows::UI::Xaml::Controls::IconSource, Windows::UI::Xaml::DependencyObject>
{
    using composable = SymbolIconSource;

protected:
    SymbolIconSourceT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::TextCommandBarFlyout, Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

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::Composition::IAnimationObject, 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::Controls::ITimePicker2, Windows::UI::Xaml::Controls::ITimePicker3, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IMenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItem2, Windows::UI::Xaml::Controls::IMenuFlyoutItem3, Windows::UI::Xaml::Controls::IMenuFlyoutItemBase, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::ISplitButton, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::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::Automation::Peers::IFrameworkElementAutomationPeer, Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, Windows::UI::Xaml::Automation::Provider::IToggleProvider, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IToolTip2, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::ITreeView2, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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::Composition::IAnimationObject, 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::Controls::IListViewItem, Windows::UI::Xaml::Controls::ITreeViewItem2, Windows::UI::Xaml::Controls::Primitives::ISelectorItem, Windows::UI::Xaml::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings, Windows::UI::Xaml::DependencyObject>
{
    using composable = TreeViewItemTemplateSettings;

protected:
    TreeViewItemTemplateSettingsT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::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::IControlOverrides, Windows::UI::Xaml::Controls::IControlOverrides6, Windows::UI::Xaml::Controls::IItemsControlOverrides, 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::Composition::IAnimationObject, 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::Controls::IItemContainerMapping, Windows::UI::Xaml::Controls::IItemsControl, Windows::UI::Xaml::Controls::IItemsControl2, Windows::UI::Xaml::Controls::IItemsControl3, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, Windows::UI::Xaml::Controls::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::IControlOverridesT<D>, Windows::UI::Xaml::Controls::IControlOverrides6T<D>, Windows::UI::Xaml::Controls::IItemsControlOverridesT<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<Windows::UI::Xaml::Controls::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, Windows::UI::Xaml::Controls::TreeViewNode, Windows::UI::Xaml::DependencyObject>
{
    using composable = TreeViewNode;

protected:
    TreeViewNodeT()
    {
        impl::call_factory<Windows::UI::Xaml::Controls::TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeFactory>([&](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::Composition::IAnimationObject, 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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2, 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>,
    impl::base<D, 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::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<Windows::UI::Xaml::Controls::UserControl, Windows::UI::Xaml::Controls::IUserControlFactory>([&](auto&& f) { f.CreateInstance(*this, this->m_inner); });
    }
};

}

WINRT_EXPORT 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::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::IFlyoutPresenterFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory> {};
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::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::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::IMenuFlyoutPresenterFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory> {};
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::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::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::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> {};

}
